Object time series system and investigation graphical user interface

ABSTRACT

Methods and systems for presenting time series for analysis. A method includes presenting a first visualization of summary information for an initial data set of a plurality of batches, presenting a filtered data set of the initial data set having a first batch identifier associated with a first batch and the second batch identifier associated with a second batch, executing a time series connector including transmitting a request to a time series application, the request comprising the first batch identifier, the second batch identifier, and the time series configuration data. The method further includes causing presentation of a user interface comprising a chart including a first plot for first time series data for the first batch identifier and a second plot for second time series data for the second batch identifier, the chart configured to the time series configuration data, and the first plot is aligned to the second plot.

TECHNICAL FIELD

The present disclosure relates to systems and techniques for dataintegration, visualization, and analysis. More specifically, thisdisclosure relates to providing a time-series query and investigationuser interface.

BACKGROUND

Sensor systems monitoring processes or operations of a system cancollect time series data, which may include numerous sensed data samplesand a corresponding time indication of when each data sample wascollected. Time series data may be related to a number ofcharacteristics and properties, for example, including temperature,pressure, pH, light, infrared (IR), ultraviolet (UV), acceleration,dissolved oxygen, optical clarity, CO², motion, rotational motion,vibration, sound, voltage, current, capacitance, electromagneticradiation, altitude, fluid flow, radiation, optical, and moisture,proximity and the like. In different contexts, the collection of thetime series data from a plurality of sensors can correspond a discretegrouping of events (or a batch) such as a trip or segment of a trip(e.g., sensors on a vehicle during a trip), a chemical reaction in aplant or factory, or a product assembly in a factory.

From the perspective of sensors gathering time series data, there maynot be a concept of a discrete grouping of events in the time seriesdata but rather a large stored data set that has the all of the timeseries data from a sensor lumped together. Furthermore, time series dataset can be large, unwieldy to analyze and difficult to compare.

SUMMARY

Embodiments of systems and methods of a time-series interaction userinterface are disclosed herein. Time series data can be stored accordingto an object-orientated model in a grouping of any events, which may bereferred to as a “batch,” which as used herein may refer to any process,system or thing that can be monitored using at least one sensor tocollect time series data. The object-orientated model for each batch mayinclude properties indicative of a start and stop time (and/or date) ofthe batch, and multiple time series associated with each batch. Forexample, multiple time series sensor data, and/or corresponding qualitydata and determined information associated with each batch. Theobject-orientated model allows the user interface to display and allowuser interaction with identified portions of time series sensor data andother corresponding information, from different batches.

A user can interact with a user interface that allows a user to performsequential filtering and transformations on batches and batch-relateddata in a visual manner such that each transformation is shownsequentially down a user interface page. Using the board user interfacea user can identify good and bad batches for further investigation in atime series user interface. The board user interface can include aconnector to the time series user interface, which allows the user toselect batch numbers and particular processes that the user isinterested in. The connector automatically generates configuration datathat is sent to the time series user interface. Further, a user caninteract with a user interface and workflow to investigate good and badbatches and identify causes of the good and bad batches. In the workflowuser interface, a first step and user interface includes identifyinggood and bad batches through quality metric filtration. A second stepand user interface includes analyzing correlation data of the filteredquality metrics with other metrics to test a hypothesis regarding goodand bad batches. A third step and user interface includesoperationalizing the insights from the first two steps to review plantdetails. At any point through the workflow a user can open a time seriesuser interface to compare and contrast batches.

The time series user interface supports object-orientated time series.The time-series data can be stored according to an object-orientatedmodel in a grouping of events, such as batches. The object-orientatedmodel for each batch includes properties such as a start and stop time,and multiple time series associated with each batch, such as multipletime series sensor data associated with each batch. The time-seriesquery user interface can receive particular batches, such as batchidentifiers, and automatically construct queries and user interfaces forthe batches using the object-orientated model. In particular, for areceived batch identifier or grouping of batch identifies and batchtype, a data model can be retrieved that specifies the start and stoptimes for the time series and which time series (e.g., for particularsensors) should be retrieved. The time series user interface system canthen automatically construct the time series user interfaces accordingto the data model and the retrieved time series data. For example, usingthe start and stop times for multiple time series for the same batchtype, the system can automatically time shift each of the respectivetime series so a user can compare and contrast multiple batches at thesame time. The solution can be faster and more accurate than a personmanually setting up the time series user interfaces and reduces themental strain on the user to setup such user interfaces.

In one innovation, an embodiment of a method for presenting time seriesincludes causing presentation of a first visualization for an initialdata set, the first visualization comprising summary information of aplurality of batches, receiving user input comprising a first filterparameter, applying the filter parameter to the initial data set, whereapplying the first filter parameter includes generating a filtered dataset from the initial data set, and causing presentation of at least someentries of the filtered data set comprising a first batch identifierassociated with a first batch and the second batch identifier associatedwith a second batch. The method further includes receiving a userselection to execute a time series connector for at least the firstbatch identifier and the second batch identifier and a batch process,where the time series connector is configured to generate time seriesconfiguration data for the batch process, and executing the time seriesconnector, where executing the time series connector further includestransmitting a request to a time series application, the requestcomprising the first batch identifier, the second batch identifier, andthe time series configuration data. The method may further includecausing presentation, in the time series application, of a time seriesuser interface based at least on the request, the time series userinterface comprising a chart, the chart comprising a first plot forfirst time series data for the first batch identifier and a second plotfor second time series data for the second batch identifier, where thechart is further configured according to the time series configurationdata, and where the first plot is aligned and comparable to the secondplot. The method is performed by one or more computer hardwareprocessors configured to execute computer-executable instructions on asecond non-transitory computer storage medium.

In an embodiment of the method, the time series connector comprises anassociation of a process that is related to a batch to time seriessensor data for two or more sensors. In an embodiment of the method, thefirst time series data of the first plot is related to a first physicalcharacteristic sensed from the first batch, and the second time seriesdata of the second plot is related to the first physical characteristicsensed from the second batch. In an embodiment of the method, the chartfurther includes a third plot for the first time series data for thefirst batch identifier, and a fourth plot for the second time seriesdata for the second batch identifier, where the first time series dataof the third plot is related to a second physical characteristic sensedfrom the first batch, and the second time series data of the fourth plotis related to the second physical characteristic sensed from the secondbatch.

In an embodiment of the method, the first plot and the second plot forthe first physical characteristic are depicted in a first graph definedby an first X and Y axis, and the third plot and the fourth plot for thesecond physical characteristic are depicted in a second graph defined bya second X and Y axis, wherein the Y axes of the first graph and thesecond graph are illustrated to be in parallel in the chart. In anembodiment of the method, the summary information includes firstinformation for each of the plurality of batches in the firstvisualization, and wherein applying the first filter parameter comprisesgenerating the filtered data set from the initial data set based onapplying the first filter parameter to the first information for each ofthe plurality of batches. In an embodiment of the method, the user inputincludes a second filter parameter, and where generating a filtered dataset includes applying the second filter parameter to the filtered dataset generated by applying the first filter parameter to generate afiltered data set filtered by the first and second filter parameter.

In an embodiment of the method, the method further includes receiving auser input comprising a graphical parameter, applying the graphicalparameter to the initial data set to generate a graphical summaryrepresenting at least some of the summary information for at least someof the plurality of batches, causing presentation of the graphicalsummary for analysis by the user. In an embodiment of the method, thegraphical summary comprises a histogram. In an embodiment of the method,the graphical summary includes a plot representing a correlation of atleast some of the summary information for at least some of the pluralityof batches. In an embodiment of the method, the time seriesconfiguration data includes preconfigured information such that thepresentation of a time series user interface based on the request causesthe chart to include preconfigured time series data from multiplesensors for each batch represented in the chart.

Another innovation is a system for presenting time series includes afirst non-transitory computer storage medium configured to store timeseries data and summary information for a plurality of batches, a secondnon-transitory computer storage medium configured to at least storecomputer-executable instructions, and one or more computer hardwareprocessors in communication with the second non-transitory computerstorage medium, the one or more computer hardware processors configuredto execute the computer-executable instructions to at least causepresentation of a first visualization for an initial data set, the firstvisualization comprising summary information of a plurality of batches,receive user input comprising a first filter parameter, apply the filterparameter to the initial data set, wherein applying the first filterparameter comprises generating a filtered data set from the initial dataset, cause presentation of at least some entries of the filtered dataset comprising a first batch identifier associated with a first batchand the second batch identifier associated with a second batch, andreceive a user selection to execute a time series connector for at leastthe first batch identifier and the second batch identifier and a batchprocess, the time series connector is configured to generate time seriesconfiguration data for the batch process. The one or more computerhardware processors are further configured to execute thecomputer-executable instructions to at least execute the time seriesconnector, executing the time series connector further includingtransmitting a request to a time series application, the requestcomprising the first batch identifier, the second batch identifier, andthe time series configuration data, and causing presentation, in thetime series application, of a time series user interface based at leaston the request, the time series user interface comprising a chart, thechart comprising a first plot for first time series data for the firstbatch identifier and a second plot for second time series data for thesecond batch identifier, wherein the chart is further configuredaccording to the time series configuration data, and wherein the firstplot is aligned and comparable to the second plot. In an embodiment ofthe system, the time series connector may include an association of aprocess that is related to a batch to time series sensor data for two ormore sensors.

In an embodiment of the system, the first time series data of the firstplot is related to a first physical characteristic sensed from the firstbatch, and the second time series data of the second plot is related tothe first physical characteristic sensed from the second batch. In anembodiment, the chart further comprises a third plot for the first timeseries data for the first batch identifier, and a fourth plot for thesecond time series data for the second batch identifier, and wherein thefirst time series data of the third plot is related to a second physicalcharacteristic sensed from the first batch, and the second time seriesdata of the fourth plot is related to the second physical characteristicsensed from the second batch. In an embodiment, the first plot and thesecond plot for the first physical characteristic are depicted in afirst graph defined by an first x-axis and a y-axis, and the third plotand the fourth plot for the second physical characteristic are depictedin a second graph defined by a second x-axis and y-axis, wherein they-axes of the first graph and the second graph are illustrated to be inparallel in the chart. In an embodiment, the user input includes asecond filter parameter, and wherein generating a filtered data setincludes applying the second filter parameter to the filtered data setto generate a filtered data set filtered by the first and second filterparameter. In an embodiment, the system one or more processors canreceive a user input comprising a graphical parameter, and apply thegraphical parameter to the initial data set to generate a graphicalsummary representing at least some of the summary information for atleast some of the plurality of batches, causing presentation of thegraphical summary for analysis by the user. A graphical summary mayinclude a plot representing a correlation of at least some of thesummary information for at least some of the plurality of batches.

Accordingly, in various embodiments, large amounts of data areautomatically and dynamically calculated interactively in response touser inputs, and the calculated data is efficiently and compactlypresented to a user by the system. Thus, in some embodiments, the userinterfaces described herein are more efficient as compared to previoususer interfaces in which data is not dynamically updated and compactlyand efficiently presented to the user in response to interactive inputs.

Further, as described herein, the system may be configured and/ordesigned to generate user interface data useable for rendering thevarious interactive user interfaces described. The user interface datamay be used by the system, and/or another computer system, device,and/or software program (for example, a browser program), to render theinteractive user interfaces. The interactive user interfaces may bedisplayed on, for example, electronic displays (including, for example,touch-enabled displays).

Additionally, the design of computer user interfaces that are useableand easily learned by humans is a non-trivial problem for softwaredevelopers. The various embodiments of interactive and dynamic userinterfaces of the present disclosure are the result of significantresearch, development, improvement, iteration, and testing. Thisnon-trivial development has resulted in the user interfaces describedherein which may provide significant cognitive and ergonomicefficiencies and advantages over previous systems. The interactive anddynamic user interfaces include improved human-computer interactionsthat may provide reduced mental workloads, improved decision-making,reduced work stress, and/or the like, for a user. For example, userinteraction with the interactive user interfaces described herein mayprovide an optimized display of time-series data and may enable a userto more quickly access, navigate, assess, and digest such informationthan previous systems.

Data may be presented in graphical representations, such as visualrepresentations, such as charts and graphs, where appropriate, to allowthe user to comfortably review the large amount of data and to takeadvantage of humans' particularly strong pattern recognition abilitiesrelated to visual stimuli. In some embodiments, the system may presentaggregate quantities, such as totals, counts, averages, correlations,and other statistical information. For example, when summary informationof an initial data set of batch data is presented in a user interfacefor display, portions of the summary information may be presented inhistogram form or another type of chart, to facilitate the userrecognizing certain features of the summary information.

In an example, summary information of an initial time series data set ofbatch data may be filtered in accordance with user input, and thefiltered results displayed, such that certain portions of the data canbe down selected from the initial data set. The down selecting of thedata can be done to further analyze batches that are “low performers” of“high performers” in accordance with a user selected criteria. In someexamples, the user selected criteria is a quality data metric determinedfor the batch after time series data has been collected for the batch,for example, at the end of the last event in a plurality of events of abatch. The down selecting the data could also be done based on filteringof initial data set is provided by one or more user input filteringparameters. For example, of a certain sensed data point, for example, ahigh data point or low data point. The system may also utilize theinformation to interpolate or extrapolate, e.g. forecast, futuredevelopments.

Further, the interactive and dynamic user interfaces described hereinare enabled by innovations in efficient interactions between the userinterfaces and underlying systems and components. For example, disclosedherein are improved methods of receiving user inputs, translation anddelivery of those inputs to various system components, automatic anddynamic execution of complex processes in response to the inputdelivery, automatic interaction among various components and processesof the system, and automatic and dynamic updating of the userinterfaces. The interactions and presentation of data via theinteractive user interfaces described herein may accordingly providecognitive and ergonomic efficiencies and advantages over previoussystems.

Various embodiments of the present disclosure provide improvements tovarious technologies and technological fields. For example, as describedabove, existing data storage and processing technology (including, e.g.,in memory databases) is limited in various ways (e.g., manual datareview is slow, costly, and less detailed; data is too voluminous;etc.), and various embodiments of the disclosure provide significantimprovements over such technology. Additionally, various embodiments ofthe present disclosure are inextricably tied to computer technology. Inparticular, various embodiments rely on detection of user inputs viagraphical user interfaces, calculation of updates to displayedelectronic data based on those user inputs, automatic processing ofrelated electronic data, and presentation of the updates to displayedimages via interactive graphical user interfaces. Such features andothers (e.g., processing and analysis of large amounts of electronicdata) are intimately tied to, and enabled by, computer technology, andwould not exist except for computer technology. For example, theinteractions with displayed data described herein in reference tovarious embodiments cannot reasonably be performed by humans alone,without the computer technology upon which they are implemented.Further, the implementation of the various embodiments of the presentdisclosure via computer technology enables many of the advantagesdescribed herein, including more efficient interaction with, andpresentation of, various types of electronic data.

Additional embodiments of the disclosure are described below inreference to the appended claims, which may serve as an additionalsummary of the disclosure.

In various embodiments, systems and/or computer systems are disclosedthat comprise a computer readable storage medium having programinstructions embodied therewith, and one or more processors configuredto execute the program instructions to cause the one or more processorsto perform operations comprising one or more aspects of the above-and/or below-described embodiments (including one or more aspects of theappended claims).

In various embodiments, computer-implemented methods are disclosed inwhich, by one or more processors executing program instructions, one ormore aspects of the above- and/or below-described embodiments (includingone or more aspects of the appended claims) are implemented and/orperformed.

In various embodiments, computer program products comprising a computerreadable storage medium are disclosed, wherein the computer readablestorage medium has program instructions embodied therewith, the programinstructions executable by one or more processors to cause the one ormore processors to perform operations comprising one or more aspects ofthe above- and/or below-described embodiments (including one or moreaspects of the appended claims).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a schematic of an overview ofcollecting, storing data in a data store, filtering the data, selectinga process or event to analyze, displaying corresponding time series datafor one or more sensors in multiple batches in a user interface.

FIG. 2 illustrates one embodiment of a database system using anontology.

FIG. 3 illustrates one embodiment of a system for creating data in adata store using a dynamic ontology.

FIG. 4 illustrates defining a dynamic ontology for use in creating datain a data store.

FIG. 5 is an example of an embodiment of a computer system that canimplement the embodiments described herein.

FIG. 6 illustrates an example of summary information of an initial dataset of a plurality of batches.

FIG. 7 illustrates an example of filtered summary information for threebatches, this filtered data set being the result of filtering theinitial data set of the plurality of batches in accordance with at leastone criteria, for example at least one filtering parameter provided by auser.

FIG. 8 illustrates an example of information that may be presented on auser interface to quickly and efficiently generate a user interfacehaving a chart that includes plots of time series data of one or moresensors for multiple batches, the multiple batches being the filtereddata set generated by filtering the initial data set.

FIG. 9 is an example user interface that displays time series data fromthe filtered data set as a result of the selections made in the userinterface illustrated in FIG. 8.

FIG. 10 is an example of a flowchart for presenting time series data ina user interface.

DETAILED DESCRIPTION

Overview

Technical Problem

Sensors can collect time series data. In particular, sensor systemsmonitoring processes or operations of a system can collect time seriesdata, which may include numerous sensed data samples and a correspondingtime indication of when each data sample was collected. In differentcontexts, the collection of the time series data from sensors cancorrespond to a discrete grouping of events (or batch) such as chemicalreactions for food processing, a trip or segment of a trip (e.g.,sensors on a vehicle during a trip), a chemical reaction in a plant orfactory, sensor data for a piece of machinery (e.g., industrialequipment or a home water heater), or a product assembly in a factory.In a food processing example, raw materials may go through a series ofsteps (where sensors can record metrics around each step of the processsuch as temperature and moisture) to be transformed into an end product;these series of steps can be repeated many times for multiple batches ofend products. However, from the perspective of sensors gathering timeseries data, there may not be a concept of a discrete grouping of eventsin the time series data but rather a large stored data set that has theall of the time series data from a sensor lumped together. Furthermore,time series data set can be large, unwieldy to analyze and difficult tocompare.

A user may be interested in answers to the following questions: What aregood batches? What are time series metrics associated with the goodbatches? What are bad batches? What are time series metrics associatedwith the bad batches? What do the series metrics from bad batches looklike compared to the metrics from good batches? What caused the goodbatches? What caused the bad batches? Further, user interfaces to viewand compare the time series data in grouping of events (or batches) canbe manually set up by a user. However, such manual setup by a user usingthe time series user interface is a slow and tedious process for a user.

Solution

A user can interact with a user interface that allows a user toinvestigate batches and batch-related data. For example, a user caninteract with a “board” user interface that allows a user to performsequential filtering and transformations on batches and batch-relateddata in a visual manner such that each transformation is shownsequentially on a user interface page. Using the board user interface auser can identify good and bad batches for further investigation in atime series user interface. The board user interface can include aconnector to the time series user interface, which allows the user toselect batch numbers and particular processes that the user isinterested in. The connector automatically generates configuration datathat is sent to the time series user interface. Further, a user caninteract with a user interface and workflow to investigate good and badbatches and identify causes of the good and bad batches. In the workflowuser interface, a first step and user interface includes identifyinggood and bad batches through quality metric filtration. A second stepand user interface includes analyzing correlation data of the filteredquality metrics with other metrics to test a hypothesis regarding goodand bad batches. A third step and user interface includesoperationalizing the insights from the first two steps to review plantdetails. At any point through the workflow a user can open a time seriesuser interface to compare and contrast batches.

The time series user interface supports object-orientated time seriesprocessing to view summaries of time series data and select certainportions of time series data for displaying graphically to facilitateanalysis of the data. The time-series data can be stored according to anobject-orientated model in a grouping of events, such as batches. Theobject-orientated model for each batch includes properties such as astart and stop time, and multiple time series associated with eachbatch, such as multiple time series sensor data associated with eachbatch. The time-series query user interface can receive particularbatches, such as batch identifiers, and automatically construct queriesand user interfaces for the batches using the object-orientated model.In particular, for a received batch identifier or grouping of batchidentifies and batch type, a data model can be retrieved that specifiesthe start and stop times for the time series and which time series(e.g., for particular sensors) should be retrieved. The time series userinterface system can then automatically construct the time series userinterfaces according to the data model and the retrieved time seriesdata. For example, using the start and stop times for multiple timeseries for the same batch type, the system can automatically time shifteach of the respective time series so a user can compare and contrastmultiple batches at the same time. The solution can be faster and moreaccurate than a person manually setting up the time series userinterfaces and reduces the mental strain on the user to setup such userinterfaces. Additional details regarding a time series user interfacethat supports object-orientated time series and/or a data model can befound in U.S. patent application Ser. No. 16/387,392, entitled “OBJECTTIME SERIES SYSTEM AND GRAPHICAL USER INTERFACE,” filed on Apr. 17,2019, which is incorporated by reference herein in its entirety.

Terms

In order to facilitate an understanding of the systems and methodsdiscussed herein, a number of terms are defined below. The terms definedbelow, as well as other terms used herein, should be construed toinclude the provided definitions, the ordinary and customary meaning ofthe terms, and/or any other implied meaning for the respective terms.Thus, the definitions below do not limit the meaning of these terms, butonly provide exemplary definitions.

Ontology: Stored information that provides a data model for storage ofdata in one or more databases. For example, the stored data may comprisedefinitions for object types and property types for data in a database,and how objects and properties may be related.

Data Store: Any computer readable storage medium, component, and/ordevice (or collection of data storage mediums and/or devices). Examplesof data stores include, but are not limited to, optical disks (e.g.,CD-ROM, DVD-ROM, etc.), magnetic disks (e.g., hard disks, floppy disks,etc.), memory circuits (e.g., solid state drives, random-access memory(RAM), etc.), and/or the like. Another example of a data store is ahosted storage environment that includes a collection of physical datastorage devices that may be remotely accessible and may be rapidlyprovisioned as needed (commonly referred to as “cloud” storage).

Database: Any data structure (and/or combinations of multiple datastructures) for storing and/or organizing data, including, but notlimited to, relational databases (e.g., Oracle databases, PostgreSQLdatabases, etc.), non-relational databases (e.g., NoSQL databases,etc.), in-memory databases, spreadsheets, as comma separated values(CSV) files, eXtendible markup language (XML) files, TeXT (TXT) files,flat files, spreadsheet files, and/or any other widely used orproprietary format for data storage. Databases are typically stored inone or more data stores. Accordingly, each database referred to herein(e.g., in the description herein and/or the figures of the presentapplication) is to be understood as being stored in one or more datastores.

Data Object or Object: A data container for information representingspecific things in the world that have a number of definable properties.For example, a data object can represent an entity such as a batch (seebelow), a sensor, a person, a place, an organization, a marketinstrument, or other noun. A data object can represent an event or agroup of events that happens at a point in time or for a duration. Adata object can represent a document or other unstructured data sourcesuch as an e-mail message, a news report, or a written paper or article.Each data object may be associated with a unique identifier thatuniquely identifies the data object. The object's attributes (e.g.metadata about the object) may be represented in one or more properties.

Object Type: Type of a data object (e.g., Batch Type, Sensor Type,Person, Event, or Document). Object types may be defined by an ontologyand may be modified or updated to include additional object types. Anobject definition (e.g., in an ontology) may include how the object isrelated to other objects, such as being a sub-object type of anotherobject type (e.g., a particular batch type can be associated with one ormore other sensor types, or an agent may be a sub-object type of aperson object type), and the properties the object type may have.

Properties: Attributes of a data object that represent individual dataitems. At a minimum, each property of a data object has a property typeand a value or values.

Property Type: The type of data a property is, such as a string, aninteger, or a double. Property types may include complex property types,such as a series data values associated with timed ticks (e.g. a timeseries), etc.

Property Value: The value associated with a property, which is of thetype indicated in the property type associated with the property. Aproperty may have multiple values.

Link: A connection between two data objects, based on, for example, arelationship, an event, and/or matching properties. Links may bedirectional, such as one representing a payment from person A to B, orbidirectional.

Link Set: Set of multiple links that are shared between two or more dataobjects.

Batch: As used herein is a broad term that refers to something thatchanges over time and that can be monitored over time. In one example, abatch may refer to a physical entity that is subject to one or morerelated events (or processes) that cause changes to the physical entity.For example, a grouping of related events processes (or operations)which a physical entity goes through may comprise a batch. In someexamples, the physical entity may be a material, a substance, a system,or a thing. In some examples, a batch may refer to any system that canbe monitored as it operates over a period of time. One or more sensorscan be used to monitor a batch, and/or one or more users can monitor abatch. In another example, a car driving from one point to another orfor a certain duration can be referred to as a “batch” (referring to thething being monitored over time, e.g., car). In such cases, theoperation of a system to do something (e.g., heat water, refine oil,make food products) may be referred to as a “batch” (referring to thething being monitored over time, e.g., the equipment). In anotherexample, material (e.g., water, oil, produce) that changes, due to beingoperated on by a system or process, may also be referred to as a “batch”(referring to the thing being monitored over time, e.g., a series ofevents, a system, a material, and the like). In another example, a batchmay refer to a baseball that is monitored for movement (e.g., as thebaseball is hit by a bat). In some embodiments, a user can also monitora batch and characterize the batch at one or more time instances over aperiod of time, e.g., characterize the quality of the batch, or how wellthe batch is operating. In some embodiments, additional informationrelating to the batch may be determined. For example, determinedinformation may be generated by a combination of data from two or moresensors, or by taking a sample of the batch and performing qualityanalysis. In another example, determined information may be generated bya combination of data from one or more sensors and user input (e.g., auser input characterizing quality). A batch may be represented as a dataobject, or as a collection of data objects, where characteristics of thebatch, (e.g., identification, start time, end time, time series datacollected by each sensor, and the like) may be represented as a dataobject.

Event: An occurrence that takes place over a time period, where timeseries data can be collected during the occurrence. An event may have astart time and/or an end time, or at least an indicated (or identified)start time and/or end time. An event generally occurs at a location. Forsome events, the location may cover a large geographic area. Forexample, an earthquake, ocean tides, and a space station falling out oforbit are examples of events that may occur across a large geographicarea, and including above and below the earth's surface. For some otherevents, the location may be at a specific place, for example, a factory,an office, a home, outside or at a business. For example, baking a cake,the operation of an autonomous vehicle on a route, the actuation of avalve in a cooling system, heating liquid in a container, a cuttingoperation on a piece of industrial equipment, a particular operation ofa system (or machinery) in a facility, a lap of a motorcycle around arace track, and a homerun are examples of events that occur that canoccur at a specific place. An event may be characterized by two or moreportions that may be referred to as sub-events or phases of the event.In some examples, a batch may undergo a change during one or moreevents.

Time Series Data: A series of information referenced to time. Forexample, a series of information that is sensed, collected, determined,and/or stored over a period of time, such that the information may bereferenced by the time that it was sensed, collected, determined, and/orstored. In one example, the series of information is generated by asensor monitoring a characteristic, for example, temperature, pressure,pH, light or radiation, dissolved oxygen, carbon dioxide, gascomposition, size, vibration, or movement. In another example, theseries of information is determined by using data from one sensor andother information, for example, data from another sensor or stored data.In another example the series information is determined by a user'sinput, for example, where the user input is a quality characterization.

Object-Centric Data Model

FIG. 1 is a schematic showing an example of collecting, storing data,and displaying time series data corresponding to multiple batches in auser interface, such that certain time series data related to each batchis aligned to have the same relative start time for ease of comparison.The batches 105 in FIG. 1 may be anything that changes and that can bemonitored over time (e.g., a system, a material, etc.). Batches 105 aremonitored over time by system 100. Several types of information may becollected as the batches are subject to one or more various events. Timeseries sensor information 110 is collected by one or more sensorsmonitoring the batches. The time series information 110 can includesensed data for each sensor monitoring the batches 105, and time data(e.g., a timestamp) that corresponds to the sensed data to indicate whenthe sensed data was collected. For example, for every sensed data samplecollected by each sensor, corresponding time information for the senseddata sample is also collected. The time information may include the datewhen the sensed data sample was collected and the time the sensed datasample was collected. In some examples, the time information is atimestamp that represents the hour, minute, seconds, and/or fractions ofa second, when the sensed data sample was collected.

FIG. 1 also illustrates time series data 110 can also include qualityinformation associated with the batches 105. The time series qualityinformation may include time referenced input that a user makes relatingto a condition of a batch. For example a user may make a visualobservation of a batch and enter that data at the time the observationwas made. In another example where the batch is a material, a user maydraw a sample of a batch and perform one or more tests or processes onthe sample to characterize a quality of the batch. Such qualitycharacteristics may, include but is not limited to, a user observationbased on a user's vision, hearing, smell, taste, or touch. In someinstances, the quality information is based on the user's experience.

The time series data 110 may also include determined informationrelating to a batch. The time series determined information may includea time reference indicating when the determined information was made,and the determined information itself. The determined information may bebased on two or more sources including, for example, time series sensorinformation of one or more sensors and/or time series user qualityinformation. In some examples, sensor information from one or moresensors is used with a predetermined algorithm to generate the timeseries determined information. In some examples, time series determinedinformation is generated using one or more sensors and previously storedinformation, for example, information on previously run batches.

Time series sensor data 110 may be stored in a storage component 125. Insome examples storage component 125 is geographically located with thebatches 105 in an information collection system 100. As furtherillustrated in FIG. 1, storage component 125 is in communication withanalysis system 130, which may be co-located with storage component 125,or at another location. Analysis system 130 may be coupled to a storagecomponent 135 which can be used to locally store any of the time seriesinformation for quicker access. Analysis system 130, may process timeseries sensor data 110 in accordance with one more data models, definedby an ontology, for storage of data in one or more databases, as furtherdescribed in reference to FIGS. 2-5. Storing the time series informationin a data model facilitates quickly accessing the time seriesinformation for certain time periods, and facilitates generating userinterfaces comprising plots of the time series information to compareinformation, such as sensor data, from one or more batches.

FIG. 1 also illustrates that multiple batches may be on multiplesystems, and time series data corresponding to the batches that caninclude sensor data, user input data, and information determined frominputs from one or more sources. In some examples of systems monitoringbatches, multiple batches may be “run” in series on a system 155 (e.g.,one after the other) such that the same sensors that are used to monitorand collect time series data for batch 1-1 are also used to monitor andcollect time series data for batch 1-2, . . . , batch 1-n.

In other examples of systems monitoring batches, multiple batches may berun in parallel on each of multiple systems 155, 160, and 165. Multiplesensors for a first system 155 monitor and collect time series data forbatch 1-1, batch 1-2, . . . , and batch 1-n. Multiple sensors multiplesensors for a second system 160 monitor and collect time series data forbatch 2-1, batch 2-2, . . . , and batch 2-n. Multiple sensors multiplesensors for a third system 165 monitor and collect time series data forbatch N-1, batch N-2, . . . , and batch N-n.

All of the collected time sensor data that is associated with systems155, 160, and 165 can be stored in one or more databases in accordancewith one or more data models, as described in more detail in referenceto FIGS. 2-5 For example, time series data may be stored in a type ofdata object in accordance with an object definition that includes howthe data is related to other objects. Data objects may be defined invarious ways depending on a particular implementation to facilitateanalyzing and comparing the generated time series data. For example,each of the batches may be stored as a data object that includes a batchidentifier, the batch start time, the batch end time, and identifiersfor one or more events that are associated with the batch. In anotherexample, each time series data stream generated by a sensor may bestored as a data object, in such a data object may include a sensoridentifier, a system identifier indicating what system the sensor isassociated with, the sensed data generated by the sensor, and timeinformation corresponding to the sensed data generated by the sensor. Inanother example, time series data that includes user indicated qualitydata may be stored as a data object that includes a batch identifier, asystem identifier, quality data, and time information corresponding tothe quality data provided by the user. In another example, time seriesdata that includes determined information may be stored as a data objectthat includes a batch identifier, system identifier, quality data, andtime information corresponding to the determined information.

Analysis system 130 may include user input devices that allow a user toidentify certain sensor information of certain batches for display andanalysis. For example, at block 140 time series data of an initial dataset of batches may be filtered to a filtered data set, which is a subsetof the batches in the initial data set, for comparison and analysis.User interface 140, for example, by event or by a time period. At block145, a process of the batches in the filtered data set is identified bya user by selecting the process from a menu presented in a board userinterface. The process is associated with time series sensor datacollected during the process. At block 148, a time series connector forat least the first batch identifier and the second batch identifier anda batch process is executed by a user selection, the time seriesconnector being configured to generate time series configuration datafor the batch process, where executing the time series connector furtherincludes transmitting a request to a time series application, therequest comprising the first batch identifier, the second batchidentifier, and the time series configuration data. At block 150, timeseries sensor data relating to the batches in the filtered data set ispresented in a user interface on a display for comparison and analysis.The filtered data block 140, the selected process to analyze block 145,and the plot time series sensor data for processes in multiple batchesblock 150 are performed using user interfaces that are generated toeasily and efficiently select desired portions of time series data fordesired batches for analysis. These user interfaces, and storing thetime series data in accordance with an ontology as described hereinallow a user to investigate, compare, and analyze large amounts of timeseries data quickly and efficiently with little or no manualmanipulation of the data itself.

In an implementation, the system 100 (or one or more aspects of thesystem 100) may comprise, or be implemented in, a “virtual computingenvironment”. As used herein, the term “virtual computing environment”should be construed broadly to include, for example, computer readableprogram instructions executed by one or more processors (e.g., asdescribed in the example of FIG. 7) to implement one or more aspects ofthe modules and/or functionality described herein. Further, in thisimplementation, one or more components of the system 100 may beunderstood as comprising one or more rules engines of the virtualcomputing environment that, in response to inputs received by thevirtual computing environment, execute program instructions to modifyoperation of the virtual computing environment. For example, a requestreceived from the user computing device 107 may be understood asmodifying operation of the virtual computing environment to cause therequest access to a resource from the system 100. Such functionality maycomprise a modification of the operation of the virtual computingenvironment in response to inputs and according to various rules. Otherfunctionality implemented by the virtual computing environment (asdescribed throughout this disclosure) may further comprise modificationsof the operation of the virtual computing environment, for example, theoperation of the virtual computing environment may change depending onthe information gathered by the system 100. Initial operation of thevirtual computing environment may be understood as an establishment ofthe virtual computing environment. In some implementations the virtualcomputing environment may comprise one or more virtual machines,containers, and/or other types of emulations of computing systems orenvironments. In some implementations the virtual computing environmentmay comprise a hosted computing environment that includes a collectionof physical computing resources that may be remotely accessible and maybe rapidly provisioned as needed (commonly referred to as “cloud”computing environment).

Implementing one or more aspects of the system 100 as a virtualcomputing environment may advantageously enable executing differentaspects or modules of the system on different computing devices orprocessors, which may increase the scalability of the system.Implementing one or more aspects of the system 100 as a virtualcomputing environment may further advantageously enable sandboxingvarious aspects, data, or modules of the system from one another, whichmay increase security of the system by preventing, e.g., maliciousintrusion into the system from spreading. Implementing one or moreaspects of the system 100 as a virtual computing environment may furtheradvantageously enable parallel execution of various aspects or modulesof the system, which may increase the scalability of the system.Implementing one or more aspects of the system 100 as a virtualcomputing environment may further advantageously enable rapidprovisioning (or de-provisioning) of computing resources to the system,which may increase scalability of the system by, e.g., expandingcomputing resources available to the system or duplicating operation ofthe system on multiple computing resources. For example, the system maybe used by thousands, hundreds of thousands, or even millions of userssimultaneously, and many megabytes, gigabytes, or terabytes (or more) ofdata may be transferred or processed by the system, and scalability ofthe system may enable such operation in an efficient and/oruninterrupted manner.

FIG. 2 illustrates one embodiment of a database system using anontology. An ontology may provide a data model for storage of timeseries data and information. To provide a framework for the discussionof specific systems and methods described herein, an example databasesystem 210 using an ontology 205 will now be described in reference toFIG. 2. This description is provided for the purpose of providing anexample and is not intended to limit the techniques to the example datamodel, the example database system, or the example database system's useof an ontology to represent information.

In one embodiment, a body of data is conceptually structured accordingto an object-centric data model represented by ontology 205. Theconceptual data model is independent of any particular database used fordurably storing one or more database(s) 209 based on the ontology 205.For example, each object of the conceptual data model may correspond toone or more rows in a relational database or an entry in LightweightDirectory Access Protocol (LDAP) database, or any combination of one ormore databases.

FIG. 2 also illustrates an object-centric conceptual data modelaccording to an embodiment. An ontology 205, as noted above, may includestored information providing a data model for storage of data in thedatabase 209. The ontology 205 may be defined by one or more objecttypes, which may each be associated with one or more property types. Atthe highest level of abstraction, data object 201 is a container forinformation representing things in the world. For example, data object201 can represent an entity such as a person, a place, an organization,a market instrument, or other noun. Data object 201 can represent anevent that happens at a point in time or for a duration. Data object 201can represent a document or other unstructured data source such as ane-mail message, a news report, or a written paper or article. Each dataobject 201 is associated with a unique identifier that uniquelyidentifies the data object within the database system.

Different types of data objects may have different property types. Forexample, a “Person” data object might have an “Eye Color” property typeand an “Event” data object might have a “Date” property type. Eachproperty 203 as represented by data in the database system 210 may havea property type defined by the ontology 205 used by the database 209.

Objects may be instantiated in the database 209 in accordance with thecorresponding object definition for the particular object in theontology 205. For example, a specific monetary payment (e.g., an objectof type “event”) of US$30.00 (e.g., a property of type “currency”)taking place on 3/27/2009 (e.g., a property of type “date”) may bestored in the database 209 as an event object with associated currencyand date properties as defined by the ontology 205. In another exampleof an event object, a batch (e.g., an object of type “batch”) in aprocess step or location in the process (e.g., a property of type“event”) starting on 3/27/2009 (e.g., a property of type “date”) at0805:00 (e.g., a property of type “start time”) and completing on3/27/2009 (e.g., a property of type “date”) at 1515:15 (e.g., a propertyof type “time”) on (or monitored by) system 1 (e.g., a property type of“system”). In another example, a specific sensor (e.g., an object oftype “sensor”) used in a system (e.g., a property of type “system”) cancollect time series data (e.g., a property of type “data”) along withtimes associated with the data (e.g., a property of type “time”). Thedata objects defined in the ontology 205 may support propertymultiplicity. In particular, a data object 201 may be allowed to havemore than one property 203 of the same property type. For example, a“Person” data object might have multiple “Address” properties ormultiple “Name” properties. In another example, a batch in a process runmay have multiple “sensor” properties indicating that multiple sensorscollected monitored the batch to collect time series data.

Each link 202 represents a connection between two data objects 201. Inone embodiment, the connection is either through a relationship, anevent, or through matching properties. A relationship connection may beasymmetrical or symmetrical. For example, “Person” data object A may beconnected to “Person” data object B by a “Child Of” relationship (where“Person” data object B has an asymmetric “Parent Of” relationship to“Person” data object A), a “Kin Of” symmetric relationship to “Person”data object C, and an asymmetric “Member Of” relationship to“Organization” data object X. The type of relationship between two dataobjects may vary depending on the types of the data objects. Forexample, “Person” data object A may have an “Appears In” relationshipwith “Document” data object Y or have a “Participate In” relationshipwith “Event” data object E. In one embodiment, when two data objects areconnected by an event, they may also be connected by relationships, inwhich each data object has a specific relationship to the event, suchas, for example, an “Appears In” relationship.

As an example of a matching properties connection, two “Person” dataobjects representing a brother and a sister, may both have an “Address”property that indicates where they live. If the brother and the sisterlive in the same home, then their “Address” properties likely containsimilar, if not identical property values. In another example, two“Batch” data objects representing two batches that were monitored by thesame system may both have a “Sensor” property that indicates the sensorthat was used to monitor each of the batches. If both batches weremonitored by the same system (e.g., at different times), then bothbatches may have one or more “Sensor” properties that are likelysimilar, if not identical, indicating one or more of the same sensorswere used to collect time series data for each of the batches. In oneembodiment, a link between two data objects may be established based onsimilar or matching properties (e.g., property types and/or propertyvalues) of the data objects. These are just some examples of the typesof connections that may be represented by a link and other types ofconnections may be represented; embodiments are not limited to anyparticular types of connections between data objects. For example, adocument might contain references to two different objects. For example,a document may contain a reference to a payment (one object), and aperson (a second object). A link between these two objects may representa connection between these two entities through their co-occurrencewithin the same document.

Each data object 201 can have multiple links with another data object201 to form a link set 204. For example, two “Person” data objectsrepresenting a husband and a wife could be linked through a “Spouse Of”relationship, a matching “Address” property, and one or more matching“Event” properties (e.g., a wedding). In another example of matchingevent properties, two or more batches can include one or more of thesame event properties, which indicates the tool more batches haveundergone the same event. Accordingly, by selecting a group of batchesand selecting an event which is common to each batch in the group ofbatches, time series data for each of these batches may be displayed ina user interface in one or more plots such that it is temporally alignedfor comparison. The time series data may include one or more time seriessensor data. In an example, the temporal alignment of a first plot oftime series data to a second plot of time series data aligns a portionof a first subset of time series data with a portion of a second subsetof time series data in the chart in a vertical or horizontalcorresponding direction such that points of the first plot and thesecond plot along the corresponding direction represent the same pointin time relative to the start of the respective first batch and secondbatch. Each link 202 as represented by data in a database may have alink type defined by the database ontology used by the database.

FIG. 3 is a block diagram illustrating exemplary components and datathat may be used in identifying and storing data according to anontology. In this example, the ontology may be configured, and data inthe data model populated, by a system of parsers and ontologyconfiguration tools. In the embodiment of FIG. 3, input data 300 isprovided to parser 302. The input data may comprise data from one ormore sources. For example, an institution may have one or more databaseswith information on credit card transactions, rental cars, and people.The databases may contain a variety of related information andattributes about each type of data, such as a “date” for a credit cardtransaction, an address for a person, and a date for when a rental caris rented. In another example, a system performing a process may be incommunication with one or more databases with information about sensorsthat monitor the process and phases of the process. The databases maycontain a variety of related information and attributes of each type ofdata, for example, related to multiple sensors that collect data duringthe process, phases of the process, data sensed by a sensor, time stampsof sensor data, and corresponding information related to the process orparticular phases of the process. The parser 302 is able to read avariety of source input data types and determine which type of data itis reading.

In accordance with the discussion above, the example ontology 205comprises stored information providing the data model of data forstorage of data in database 209. The ontology 205 stored informationprovides a data model having one or more object types 310, one or moreproperty types 316, and one or more link types 330. Based on informationdetermined by the parser 302 or other mapping of source inputinformation to object type, one or more data objects 201 may beinstantiated in the database 209 based on respective determined objecttypes 310, and each of the objects 201 has one or more properties 203that are instantiated based on property types 316. Two data objects 201may be connected by one or more links 202 that may be instantiated basedon link types 330. The property types 316 each may comprise one or moredata types 318, such as a string, number, etc. Property types 316 may beinstantiated based on a base property type 320. For example, a baseproperty type 320 may be “Locations” and a property type 316 may be“Home.”

In an embodiment, a user of the system uses an object type editor 324 tocreate and/or modify the object types 310 and define attributes of theobject types. In an embodiment, a user of the system uses a propertytype editor 326 to create and/or modify the property types 316 anddefine attributes of the property types. In an embodiment, a user of thesystem uses link type editor 328 to create the link types 330.Alternatively, other programs, processes, or programmatic controls maybe used to create link types and property types and define attributes,and using editors is not required.

In an embodiment, creating a property type 316 using the property typeeditor 426 involves defining at least one parser definition using aparser editor 322. A parser definition comprises metadata that informsparser 302 how to parse input data 300 to determine whether values inthe input data can be assigned to the property type 316 that isassociated with the parser definition. In an embodiment, each parserdefinition may comprise a regular expression parser 304A or a codemodule parser 304B. In other embodiments, other kinds of parserdefinitions may be provided using scripts or other programmaticelements. Once defined, both a regular expression parser 304A and a codemodule parser 304B can provide input to parser 302 to control parsing ofinput data 300.

Using the data types defined in the ontology, input data 300 may beparsed by the parser 302 determine which object type 310 should receivedata from a record created from the input data, and which property types316 should be assigned to data from individual field values in the inputdata. Based on the object-property mapping 301, the parser 302 selectsone of the parser definitions that is associated with a property type inthe input data. The parser parses an input data field using the selectedparser definition, resulting in creating new or modified data 303. Thenew or modified data 303 is added to the database 209 according toontology 205 by storing values of the new or modified data in a propertyof the specified property type. As a result, input data 300 havingvarying format or syntax can be created in database 209. The ontology205 may be modified at any time using object type editor 324, propertytype editor 326, and link type editor 328, or under program controlwithout human use of an editor. Parser editor 322 enables creatingmultiple parser definitions that can successfully parse input data 300having varying format or syntax and determine which property typesshould be used to transform input data 300 into new or modified inputdata 303.

A user interface may show relationships between data objects.Relationships between data objects may be stored as links, or in someembodiments, as properties, where a relationship may be detected betweenthe properties. In some cases, as stated above, the links may bedirectional. For example, a payment link may have a direction associatedwith the payment, where one person object is a receiver of a payment,and another person object is the payer of payment.

In addition to visually showing relationships between the data objects,a user interface may allow various other manipulations. For example, theobjects within a database 209 may be searched using a search interface(e.g., text string matching of object properties), inspected (e.g.,properties and associated data viewed), filtered (e.g., narrowing theuniverse of objects into sets and subsets by properties orrelationships), and statistically aggregated (e.g., numericallysummarized based on summarization criteria), among other operations andvisualizations.

Advantageously, the present disclosure allows users to interact andanalyze electronic data in a more analytically useful way. Graphicaluser interfaces allow the user to visualize otherwise difficult todefine relationships and patterns between different data objects. In theexample of a system performing a process numerous times and being incommunication with one or more databases with information about sensorsthat monitor the process and phases of the process, a graphical userinterface can display time series sensor data of one or more sensors forcorresponding times in selected processes at selected times to comparethe sensor data from process to process. That is, the time series sensordata for two or more processes can be displayed in a plot in a relativetime scale such that the data at the beginning of each plot is alignedto be at the same point in the process to help identify differences inthe processes. Such time series sensor data has been parsed and storedin one or more data objects with properties and relationships as definedby an ontology. This allows a user, through the user interface, toquickly and easily select for display in one or more plots aligned timeseries sensor data of certain sensors, processes (or batches), systemsetc., and at a desired scale/time period of the displayed. The presentdisclosure allows for easier comparison of time series data that wasgenerated at times, and/or in different systems. The present disclosurealso allows faster analysis of time series data by allowing quick andaccurate access to selected portions of time series sensor data whichmay have been collected by different sensors in different systems, orthe same sensors of the same system but during different processes of arepetitively run process. Without using the present disclosure, quicklyselecting, displaying, and analyzing time series data, and making use ofknown relationships associated with time series data, would be virtuallyimpossible given the size and diversity of many users' presentdatabases, (e.g. excel spreadsheets, emails, and word documents).

FIG. 4 illustrates defining a dynamic ontology for use in creating datain a database. For purposes of disclosing a clear example, operationsthat may be used to define a dynamic ontology are illustrated in blocks402-409 of FIG. 4, and are first described at a high level, and detailsof an example implementation follow the high level description. Althoughthe operations may be referred to herein as “steps,” (e.g., steps 402,404, 406, etc.), unless indicated otherwise, these operations may beperformed multiple time, for example, as loops as illustrated in FIG. 4.Also, in an embodiment, these operations may be performed in a differentorder, and/or there may be fewer operations or less operations.

In step 402, one or more object types are created for a databaseontology. In step 406, one or more property types are created for eachobject type. As indicated in step 404, the attributes of object types orproperty types of the ontology may be edited or modified at any time.

In step 408, at least one parser definition is created for each propertytype. At step 409, attributes of a parser definition may be edited ormodified at any time.

In an embodiment, each property type is declared to be representative ofone or more object types. A property type is representative of an objecttype when the property type is intuitively associated with the objecttype. For example, a property type of “Social Security Number” may berepresentative of an object type “Person” but not representative of anobject type “Business.”

In an embodiment, each property type has one or more components and abase type. In an embodiment, a property type may comprise a string, adate, a number, or a composite type consisting of two or more string,date, or number elements. Thus, property types are extensible and canrepresent complex data structures. Further, a parser definition canreference a component of a complex property type as a unit or token.

An example of a property having multiple components is a Name propertyhaving a Last Name component and a First Name component. An example ofraw input data is “Smith, Jane”. An example parser definition specifiesan association of input data to object property components as follows:{LAST_NAME}, {FIRST_NAME}→Name:Last, Name:First. In an embodiment, theassociation {LAST_NAME}, {FIRST_NAME} is defined in a parser definitionusing regular expression symbology. The association {LAST_NAME},{FIRST_NAME} indicates that a last name string followed by a first namestring comprises valid input data for a property of type Name. Incontrast, input data of “Smith Jane” would not be valid for thespecified parser definition, but a user could create a second parserdefinition that does match input data of “Smith Jane”. The definitionName:Last, Name:First specifies that matching input data values map tocomponents named “Last” and “First” of the Name property.

As a result, parsing the input data using the parser definition resultsin assigning the value “Smith” to the Name:Last component of the Nameproperty, and the value “Jane” to the Name:First component of the Nameproperty.

In an embodiment, administrative users use an administrative editor tocreate or edit object types and property types. In an embodiment, usersuse the administrative editor to specify parser definitions and toassociate regular expressions, code modules or scripts with the parserdefinitions. In the administrative editor, a user can specify attributesand components of a property type. For example, in one embodiment a userspecifies a graphical user interface icon that is associated with theproperty type and displayed in a user interface for selecting theproperty type. The user further specifies a parser definition that isassociated with the property type and that can parse input data and mapthe input data to properties corresponding to the property type. Theuser further specifies a display format for the property type indicatinghow users will see properties of that property type.

In an embodiment, an object type editor panel could comprise graphicalbuttons for selecting add, delete, and edit functions, and one or morerows that identify object types and a summary of selected attributes ofthe object types. Example selected attributes that can be displayed inobject editor panel include an object type name (e.g., Business, Asset,etc.), a uniform resource identifier (URI) specifying a location ofinformation defining the object type (for example, “com.business_entity_name.object.business”), and a base type of the objecttype, also expressed in URI format (for example, “com.business_entity_name.object.entity”). Each URI also may include agraphical icon.

In an embodiment, a user interacts with a computer to perform thefollowing steps to define an object type. Assume for purposes of anexample that the new object type is Batch. Using the object type editor,the user selects the “Add Object Type” button and the computer generatesand displays a panel that prompts the user to enter values for a newobject type. The user selects a base object type of Entity, which maycomprise any person, place or thing. The user assigns a graphical iconto the Batch object type. The user assigns a display name of “Batch” tothe object type.

In an embodiment, a user interacts with the computer to define aproperty type in a similar manner. For example, the user specifies aname for the property type, a display name, and an icon. The user mayspecify one or more validators for a property type. Each validator maycomprise a regular expression that input data modified by a parser mustmatch to constitute valid data for that property type. In an embodiment,each validator is applied to input data before a process can store themodified input data in an object property of the associated propertytype. Validators are applied after parsing and before input data isallowed to be stored in an object property.

In various embodiments, validators may comprise regular expressions, aset of fixed values, or a code module. For example, a property type thatis a number may have a validator comprising a regular expression thatmatches digits 0 to 9. As another example, a property type that is a USstate may have a validator that comprises the set {AK, AL, CA . . . VA}of valid two-letter postal abbreviations for states. Validator sets maybe extendible to allow a user to add further values. A property type mayhave component elements, and each component element may have a differentvalidator. For example, a property type of “Address” may comprise ascomponents “City”, “State”, and “ZIP”, each of which may have adifferent validator.

In an embodiment, defining a property type includes identifying one ormore associated words for the property type. The associated wordssupport search functions in large database systems. For example, aproperty type of “Address” may have an associated word of “home” so thata search in the system for “home” properties will yield “Address” as oneresult.

In an embodiment, defining a property type includes identifying adisplay formatter for the property type. A display formatter specifieshow to print or display a property type value.

In an embodiment, the parser definitions each include a regularexpression that matches valid input, and the parser uses a regularexpression processing module. For example, conventional Java languageprocessors typically have regular expression processing modules builtin. In an embodiment, parser definitions comprising regular expressionsmay be chained together. In another embodiment, one or more of theparser definitions each include a code module that contains logic forparsing input data and determining whether the input data matches aspecified syntax or data model. The code module may be written in Java,JavaScript, or any other suitable source language.

In an embodiment, there may be any number of parser definitions andsub-definitions. The number of parser definitions is unimportant becausethe input data is applied successively to each parser definition until amatch occurs. When a match occurs, the input data is mapped using theparser sub definitions to one or more components of an instance of anobject property. As a result, input data can vary syntactically from adesired syntax but correct data values are mapped into correct objectproperty values in a database.

Accordingly, referring again to FIG. 4, creating a parser definition fora property type at step 408 may comprise selecting a parser type such asa regular expression, code module, or other parser type. When the parsertype is “code module,” then a user specifies the name of a particularcode module, script, or other functional element that can performparsing for the associated property type.

In an embodiment, defining a property type includes creating adefinition of a parser for the property type using a parser editor. Inan embodiment, a screen display comprises a Parser Type combo box thatcan receive a user selection of a parser type, such as “RegularExpression” or “Code Module.” A screen display may further comprises aName text entry box that can receive a user-specified name for theparser definition.

When the parser type is “regular expression,” steps 414-420 areperformed. At step 414, regular expression text is specified. Forexample, when the Parser Type value of combo box is “RegularExpression,” a screen display comprises an Expression Pattern text boxthat can receive a user entry of regular expression pattern text.

In step 416, a property type component and a matching sub-definition ofregular expression text is specified. For example, a screen displayfurther comprises one or more property type component mappings. Eachproperty type component mapping associates a sub-definition of theregular expression pattern text with the property type component that isshown in a combo box. A user specifies a property type component byselecting a property type component using a combo box for an associatedsub-definition. As shown in step 518, specifying a property typecomponent and sub-definition of regular expression text may be repeatedfor all other property type components of a particular property type.

In step 420, a user may specify one or more constraints, default values,and/or other attributes of a parser definition. The user also mayspecify that a match to a particular property type component is notrequired by checking a “Not Required” check box. A screen display mayfurther comprise a Default Value text box that can receive user inputfor a default value for the property type component. If a Default Valueis specified, then the associated property type receives that value ifno match occurs for associated grouping of the regular expression. Inalternative embodiments, other constraints may be specified.

At step 422, the parser definition is stored in association with aproperty type. For example, selecting the SAVE button causes storing aparser definition based on the values entered in screen display. Parserdefinitions may be stored in database 209.

The approach of FIG. 4 may be implemented using other mechanisms forcreating and specifying the values and elements identified in FIG. 4,and a particular GUI of is not required.

Advantageously, use of a dynamic ontology may allow a user to takeadvantage of an ontological data model, while not constraining himselfor herself to a hard-coded ontology. Hard-coded ontologies can be overlysimple (i.e., lacking detailed semantic properties, makingclassification difficult but limiting analysis) or overly complex (i.e.,having overly detailed semantic properties, making classificationdifficult). Use of a dynamic ontology can allow a user to define thedesired level of semantic granularity, making dynamic ontologiessuitable for a plurality of different and diverse uses (e.g., fraudprevention, cyber security, governmental applications, capital markets,etc.).

Advantageously, use of a parser or other ontology configuration toolsmay allow greater scalability of a user's database without loss of anyanalytic ability. Use of a parser or other ontology configuration toolsand parser definitions, (e.g., first name, last name, etc.), may allowfor self-categorization without the need for manual coding. Manualcoding of a data object's properties may be subject to many of thedisadvantages associated with manual data entry (e.g., slow, inaccurate,and costly). Additionally, manual coding of a data object's propertiesmay not allow for dynamic ontology reconfiguration if a user chose toadjust the granularity, (i.e., specificity), or an ontologies semanticproperties.

Certain methods can be used to transform data and create the data in adatabase using a dynamic ontology. In one example, input data isreceived. In an embodiment, an input data file is received. The inputdata file may comprise a comma-separated value (CSV) file, aspreadsheet, XML or other input data file format. Input data 300 of FIG.3 may represent such file formats or any other form of input data.

An object type associated with input data rows of the input data may beidentified, and one or more property types associated with input datafields of the input data are identified. Then, a row of data is readfrom the input data, and one or more field values are identified basedon delimiters or other field identifiers in the input data. A set ofparser definitions associated with the property type of a particularinput data field may be selected. For example, metadata stored as partof creating a property type specifies a set of parser definitions, aspreviously described. The next parser definition can be applied to aninput data field value. Thus, data fields are read from each row of thefile and matched to each parser that has been defined for thecorresponding property types. For example, assume that the mappingindicates that an input data CSV file comprises (Last Name, First Name)values for Name properties of Person objects. Data fields are read fromthe input data CSV file and compared to each of the parsers that hasbeen defined for the Name property type given the First Name field andLast Name field. If a match occurs for a (Last Name, First Name) pairvalue to any of the parsers for the Name property type, then the parsertransforms the input data pair of (Last Name, First Name) into modifiedinput data to be stored in an instantiation of a Name property.

If applying a definition at results in a match to the input data, aproperty instance is created, and the input data field value is storedin a property of the property type associated with the matchingsub-definition of the parser definition. For example, assume that theinput data matches the regular expression for an ADDRESS value. Themapping specifies how to store the data matching each grouping of theregular expression into a component of the ADDRESS property. Inresponse, an instance of an ADDRESS property is created in computermemory and the matching modified input data value is stored in eachcomponent of the property instance.

If no match occurs, then a test may be performed to determine whetherother parser definitions match the same input data value. As an example,a property editing wizard in which multiple parsers have been createdfor a particular property, each of the multiple parsers can be used inmatching input data. If no match occurs to the given parser definition,then any other parser definitions for that property type are matcheduntil either no match occurs, or no other parser definitions areavailable.

If a grouping is empty, then the component is filled by the defaultvalue for that component, if it exists. If no other parser definitionsare available, then an error is raised or the property is discarded.These preceding steps are repeated for all other values and rows in theinput data until the process has transformed all the input data intoproperties in memory. After these steps are repeated for all other inputdata fields and rows, an object of the correct object type isinstantiated. For example, the object-property mapping 301 may specifyan object type for particular input data, and that type of object isinstantiated. The newly created object is associated in memory with theproperties that are already in memory. The resulting object is stored inthe database.

Steps in the preceding process may be organized in a pipeline. Using theapproaches herein, a user can self-define a database ontology and useautomated, machine-based techniques to transform input data according touser-defined parsers and store the transformed data in the databaseaccording to the ontology. The approach provides efficient movement ofdata into a database according to an ontology. The input data hasimproved intelligibility after transformation because the data is storedin a canonical ontology. Further, the approach is flexible andadaptable, because the user can modify the ontology at any time and isnot tied to a fixed ontology. The user also can define multiple parsersto result in semantic matches to input data even when the syntax of theinput data is variable.

In various implementations, data objects in ontology 205 stored indatabase 209, may be stored as graphs or graph-like relationships (whichmay comprise data structures or databases), referred to collectively as“graphs.” Some examples of graphs include an undirected graph, clusters,and adjacency lists that allow storing of graphs in memory efficiently,particularly where the graphs are lightly-connected graphs or clusters(e.g. graphs or clusters wherein the number of nodes is high compared tothe number of linkages per node). Adjacency matrices may also allow formore efficient access and processing, particularly vectorized access andprocessing (e.g. using specialized hardware or processor instructionsfor matrix math), to the graph or cluster data because each matrix rowcorresponding to a node may have the same size irrespective of thenumber of linkages by node. As described here, various data items may bestored, processed, analyzed, etc. via graph-related data structures,which may provide various storage and processing efficiency advantagesdescribed. For example, advantages of graph-related data structures mayinclude: built to handle high volume, highly connected data; efficientin computing relationship queries than traditional databases, eitherusing adjacency matrices, or adjacency lists; can easily add to theexisting structure without endangering current functionality; structureand schema of a graph model can easily flex; new data types and itsrelationship; evolves in step with the rest of the application and anychanging business data requirements; can easily add weights to edges;can use optimal amount of computer memory, etc.

The nodes of a graph may represent different information or dataobjects, for example. The edges of the graph may represent relationshipsbetween the nodes. The ontology may be created or updated in variousways, including those described herein, comprising both manual andautomatic processes. In some implementations, the ontology and or dataobjects in the graph database may be created and/or interacted withvisually through various graphical user interfaces. Advantageously, thisallows the user to interact with the data objects by placing, dragging,linking and deleting visual entities on a graphical user interface. Theontology may be converted to a low-level (i.e. node list)representation.

By defining data objects to have certain links and properties, andadding information to these data objects and defining links andproperties of the data objects, the time series information associatedwith multiple batches that are each monitored by multiple sensors duringmultiple events can be organized and stored for later use. A userinterface can then be used to quickly and efficiently access specificportions of the time series data and plot the data for display on a userinterface. For example, the data objects can be used to determine fromtime series data of a first sensor, a first subset of time series datafor a first batch from a desired first start time to a first end time.The data objects can also be used to determine, from time series data ofthe first sensor, a second subset of time series data for the secondbatch from a second start time to a second end time. This determine datacan then be used to generate a time series user interface comprising achart, the chart comprising a first plot for the first subset of timeseries data and a second plot for the second subset of time series data,wherein the first plot is aligned to the second plot such that the datacan be compared, and the generated user interface can be displayed.

FIG. 5 is a block diagram that illustrates a computer system 500 uponwhich various embodiments may be implemented. Computer system 500includes a bus 502 or other communication mechanism for communicatinginformation, and a hardware processor, or multiple processors, 504coupled with bus 502 for processing information. Hardware processor(s)504 may be, for example, one or more general purpose microprocessors.

Computer system 500 also includes a main memory 506, such as a randomaccess memory (RAM), cache and/or other dynamic storage devices, coupledto bus 502 for storing information and instructions to be executed byprocessor 504. Main memory 506 also may be used for storing temporaryvariables or other intermediate information during execution ofinstructions to be executed by processor 504. Such instructions, whenstored in storage media accessible to processor 504, render computersystem 500 into a special-purpose machine that is customized to performthe operations specified in the instructions. The main memory 506 may,for example, include instructions to allow a user to manipulate timeseries data to store the time series data in data objects as defined byan ontology, as described in reference to FIGS. 2-5.

Computer system 500 further includes a read only memory (ROM) 508 orother static storage device coupled to bus 502 for storing staticinformation and instructions for processor 504. A storage device 510,such as a magnetic disk, optical disk, or USB thumb drive (Flash drive),etc., is provided and coupled to bus 502 for storing information andinstructions.

Computer system 500 may be coupled via bus 502 to a display 512, such asa cathode ray tube (CRT) or LCD display (or touch screen), fordisplaying information to a computer user. An input device 514,including alphanumeric and other keys, is coupled to bus 502 forcommunicating information and command selections to processor 504.Another type of user input device is cursor control 516, such as amouse, a trackball, or cursor direction keys for communicating directioninformation and command selections to processor 504 and for controllingcursor movement on display 512. This input device typically has twodegrees of freedom in two axes, a first axis (e.g., x) and a second axis(e.g., y), that allows the device to specify positions in a plane. Insome embodiments, the same direction information and command selectionsas cursor control may be implemented via receiving touches on a touchscreen without a cursor.

Computing system 500 may include a user interface module to implement aGUI that may be stored in a mass storage device as computer executableprogram instructions that are executed by the computing device(s).Computer system 500 may further, as described below, implement thetechniques described herein using customized hard-wired logic, one ormore ASICs or FPGAs, firmware and/or program logic which in combinationwith the computer system causes or programs computer system 500 to be aspecial-purpose machine. According to one embodiment, the techniquesherein are performed by computer system 500 in response to processor(s)504 executing one or more sequences of one or more computer readableprogram instructions contained in main memory 506. Such instructions maybe read into main memory 506 from another storage medium, such asstorage device 510. Execution of the sequences of instructions containedin main memory 506 causes processor(s) 504 to perform the process stepsdescribed herein. In alternative embodiments, hard-wired circuitry maybe used in place of or in combination with software instructions.

Various forms of computer readable storage media may be involved incarrying one or more sequences of one or more computer readable programinstructions to processor 504 for execution. For example, theinstructions may initially be carried on a magnetic disk or solid statedrive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 500 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 502. Bus 502 carries the data tomain memory 506, from which processor 504 retrieves and executes theinstructions. The instructions received by main memory 506 mayoptionally be stored on storage device 510 either before or afterexecution by processor 504.

Computer system 500 also includes a communication interface 518 coupledto bus 502. Communication interface 518 provides a two-way datacommunication coupling to a network link 520 that is connected to alocal network 522. For example, communication interface 518 may be anintegrated services digital network (ISDN) card, cable modem, satellitemodem, or a modem to provide a data communication connection to acorresponding type of telephone line. As another example, communicationinterface 518 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN (or WAN component tocommunicate with a WAN). Wireless links may also be implemented. In anysuch implementation, communication interface 518 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

Network link 520 typically provides data communication through one ormore networks to other data devices. For example, network link 520 mayprovide a connection through local network 522 to a host computer 524 orto data equipment operated by an Internet Service Provider (ISP) 526.ISP 526 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 528. Local network 522 and Internet 528 both use electrical,electromagnetic or optical signals that carry digital data streams. Thesignals through the various networks and the signals on network link 520and through communication interface 518, which carry the digital data toand from computer system 500, are example forms of transmission media.

Computer system 500 can send messages and receive data, includingprogram code, through the network(s), network link 520 and communicationinterface 518. In the Internet example, a server 530 might transmit arequested code for an application program through Internet 528, ISP 526,local network 522 and communication interface 518. The received code maybe executed by processor 504 as it is received, and/or stored in storagedevice 510, or other non-volatile storage for later execution.

Accordingly, in some embodiments, of the computer system 500, thecomputer system comprises a first non-transitory computer storage mediumstorage device 510 configured to at least store for a plurality ofbatches, (i) first time series object data comprising a first start timeand a first end time for a first batch, and (ii) second time seriesobject data comprising a second start time and a second end time for asecond batch. The computer system 500 can further comprise a secondnon-transitory computer storage medium main memory 506 configured to atleast store computer-executable instructions. The computer system canfurther comprise one or more computer hardware processors 504 incommunication with the second non-transitory computer storage mediummain memory 506, the one or more computer hardware processors 504configured to execute the computer-executable instructions to at least:determine, from time series data from a first sensor, a first subset oftime series data for the first batch from the first start time and thefirst end time; determine, from the time series data from the firstsensor, a second subset of time series data for the second batch fromthe second start time and the second end time; generate a time seriesuser interface comprising a chart, the chart comprising a first plot forat least a portion of the first subset of time series data and a secondplot for at least a portion of the second subset of time series data,wherein the first plot is temporally aligned to the second plot; andcause presentation of the time series user interface on the display 512.The plots may be temporally aligned, for example, such that they aregraphically aligned. Either the first plot or the second plot may beshown in the chart as shifted in time so that they may begin at a samerelative time in the chart. For example, the temporal alignment of thefirst plot to the second plot may align the portion of the first subsetof time series data with the portion of the second subset of time seriesdata in the chart in a vertical or horizontal corresponding directionsuch that points of the first plot and the second plot along thecorresponding direction represent the same point in time relative to thestart of the respective first batch and second batch.

The computer system 500 can include many other aspects. In anembodiment, the one or more computer hardware processors 504 of thecomputer system 500 are further configured to execute thecomputer-executable instructions to receive and store user input plotdisplay range data for at least one of the first plot and the secondplot, and in response to receiving the user data, from user input device514, generate a time series user interface including a chart using theuser input plot display range data, the chart including a first plot forthe first subset of time series data and a second plot for the secondsubset of time series data, wherein the first plot is aligned to thesecond plot, wherein the user input display range data indicates aperiod of time. In another example, the one or more computer hardwareprocessors 504 of the computer system 500 are further configured toexecute the computer-executable instructions to determine, from timeseries data from a plurality of sensors, a corresponding number of oneor more additional subsets of time series data for the first batch fromthe first start time and the first end time of the first batch,determine, from the time series data from the plurality of sensors, acorresponding number of one or more additional subsets of time seriesdata for the second batch from the second start time and the second endtime of the second batch, and cause presentation of the time series userinterface. The chart may further include one or more additional plotscorresponding to the one or more additional subsets of time series data,wherein the one or more additional plots are also aligned and comparableto the first plot and the second plot. As described in reference toFIGS. 2-5, the one or more computer hardware processors 504 may beconfigured to execute the computer-executable instructions to generate auser interface for defining an object model to store the first timeseries object data and the second time series object data.

Various embodiments of the present disclosure may be a system, a method,and/or a computer program product at any possible technical detail levelof integration. The computer program product may include a computerreadable storage medium (or mediums) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent disclosure. For example, the functionality described herein maybe performed as software instructions are executed by, and/or inresponse to software instructions being executed by, one or morehardware processors and/or any other suitable computing devices. Thesoftware instructions and/or other executable code may be read from acomputer readable storage medium (or mediums).

The computer readable storage medium can be a tangible device that canretain and store data and/or instructions for use by an instructionexecution device. The computer readable storage medium may be, forexample, but is not limited to, an electronic storage device (includingany volatile and/or non-volatile electronic storage devices), a magneticstorage device, an optical storage device, an electromagnetic storagedevice, a semiconductor storage device, or any suitable combination ofthe foregoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a solid state drive, a random accessmemory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), a static random access memory(SRAM), a portable compact disc read-only memory (CD-ROM), a digitalversatile disk (DVD), a memory stick, a floppy disk, a mechanicallyencoded device such as punch-cards or raised structures in a groovehaving instructions recorded thereon, and any suitable combination ofthe foregoing. A computer readable storage medium, as used herein, isnot to be construed as being transitory signals per se, such as radiowaves or other freely propagating electromagnetic waves, electromagneticwaves propagating through a waveguide or other transmission media (e.g.,light pulses passing through a fiber-optic cable), or electrical signalstransmitted through a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions (as also referred to herein as,for example, “code,” “instructions,” “module,” “application,” “softwareapplication,” and/or the like) for carrying out operations of thepresent disclosure may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Java, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. Computer readable program instructions may be callable fromother instructions or from itself, and/or may be invoked in response todetected events or interrupts. Computer readable program instructionsconfigured for execution on computing devices may be provided on acomputer readable storage medium, and/or as a digital download (and maybe originally stored in a compressed or installable format that requiresinstallation, decompression or decryption prior to execution) that maythen be stored on a computer readable storage medium. Such computerreadable program instructions may be stored, partially or fully, on amemory device (e.g., a computer readable storage medium) of theexecuting computing device, for execution by the computing device. Thecomputer readable program instructions may execute entirely on a user'scomputer (e.g., the executing computing device), partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider). In some embodiments,electronic circuitry including, for example, programmable logiccircuitry, field-programmable gate arrays (FPGA), or programmable logicarrays (PLA) may execute the computer readable program instructions byutilizing state information of the computer readable programinstructions to personalize the electronic circuitry, in order toperform aspects of the present disclosure.

Aspects of the present disclosure are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of thedisclosure. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart(s) and/or block diagram(s)block or blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks. For example, the instructions may initially be carried on amagnetic disk or solid state drive of a remote computer. The remotecomputer may load the instructions and/or modules into its dynamicmemory and send the instructions over a telephone, cable, or opticalline using a modem. A modem local to a server computing system mayreceive the data on the telephone/cable/optical line and use a converterdevice including the appropriate circuitry to place the data on a bus.The bus may carry the data to a memory, from which a processor mayretrieve and execute the instructions. The instructions received by thememory may optionally be stored on a storage device (e.g., a solid statedrive) either before or after execution by the computer processor.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present disclosure. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. In addition, certain blocks may be omitted insome implementations. The methods and processes described herein arealso not limited to any particular sequence, and the blocks or statesrelating thereto can be performed in other sequences that areappropriate.

It will also be noted that each block of the block diagrams and/orflowchart illustration, and combinations of blocks in the block diagramsand/or flowchart illustration, can be implemented by special purposehardware-based systems that perform the specified functions or acts orcarry out combinations of special purpose hardware and computerinstructions. For example, any of the processes, methods, algorithms,elements, blocks, applications, or other functionality (or portions offunctionality) described in the preceding sections may be embodied in,and/or fully or partially automated via, electronic hardware suchapplication-specific processors (e.g., application-specific integratedcircuits (ASICs)), programmable processors (e.g., field programmablegate arrays (FPGAs)), application-specific circuitry, and/or the like(any of which may also combine custom hard-wired logic, logic circuits,ASICs, FPGAs, etc. with custom programming/execution of softwareinstructions to accomplish the techniques).

Any of the above-mentioned processors, and/or devices incorporating anyof the above-mentioned processors, may be referred to herein as, forexample, “computers,” “computer devices,” “computing devices,” “hardwarecomputing devices,” “hardware processors,” “processing units,” and/orthe like. Computing devices of the above-embodiments may generally (butnot necessarily) be controlled and/or coordinated by operating systemsoftware, such as Mac OS, iOS, Android, Chrome OS, Windows OS (e.g.,Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, WindowsServer, etc.), Windows CE, Unix, Linux, SunOS, Solaris, Blackberry OS,VxWorks, or other suitable operating systems. In other embodiments, thecomputing devices may be controlled by a proprietary operating system.Conventional operating systems control and schedule computer processesfor execution, perform memory management, provide file system,networking, I/O services, and provide a user interface functionality,such as a graphical user interface (“GUI”), among other things.

FIG. 6 illustrates an example of summary information 600 of an initialdata set of a plurality of batches on a board user interface, andillustrates an example of a graph 660 of at least some of the initialdata set that may be generated to help select batches for a filtereddata set. The board user interface illustrated in FIGS. 6-8 this allow auser to filter down and select batches that they want to investigatefurther. The initial data set of the plurality of batches may includeseveral, dozens or hundreds of batches, or more. The batches in initialdata set may have had a similar process that occurred on the samesystem, or on different systems. The summary information 600 presentedin FIG. 6 is a representation of summary information. Actual summaryinformation that is associated with a plurality of batches depends, ofcourse, on the particular batches, the events and processes associatedwith the batches, the sensors used to collect time series data for thebatches, and any other information (e.g., quality information) that isassociated with the batches. The summary information 600 in this exampleshows 12 batches but fewer or more may be displayed, as indicated by row650. The summary information 600 is an example of batch information ofan initial data set that may be generated and displayed to a user is astep in investigating or analyzing time series data generated by aplurality of batches.

The summary information 600 illustrated in FIG. 6 is shown in a tableformat and is one example of how information of a plurality of batchesmay be displayed in a user interface, such as a board user interface.Other ways of presenting the summary information 600 are alsocontemplated. In this example, summary information 600 includes a column605 listing the number batches from one to N, the summary informationfor each batch listed along a row of the table. The summary information600 also includes a column 610 indicating a Batch Identifier, a column615 indicating a first Process or system, column 620 indicating a secondProcess or system, in column 625 indicating other processes or systems.In this example each process or system may relate to an event thatoccurred for the indicated batch. In some examples, the events relate toa portion of a system that is monitoring a batch during a particulartime. In one example, where the batch is a vehicle moving to aparticular route, an event may be a particular part of the route, asdefined by specific geographic area, or by a split specific time. Also,if the batch is a vehicle, an event may relate to a certain portion ofthe vehicle thus defining one or more sensors that may be located in thecertain portion of the vehicle to capture time series data relating tothe event. For example, the event may be a braking operation of thevehicle and sensors monitor characteristics of the braking operation forexample heat, pressure, rotational speed, movement of brakingmechanisms, noise, etc. also if the event is a braking operation of avehicle, the event may take place in more than one location of thevehicle. In other words during the braking operation event sensor datamay be collected from multiple locations on the vehicle, for example, ateach wheel and at control components for the braking operation.

For batches related to production of a material, each process or systemmay relate to a certain operation that occurs during the production ofthe material, for example, heating the material, cooling the material,stirring the material, mixing the material, and subjecting the materialto have one or more physical changes. In one example, the batch is acake and during the baking process the cake is baked in a first oven fora particular time and a second oven for particular time, two events forthis batch may be the places the cake is located during baking, that is,the first oven and the second oven. Thus, the processor system may bereferenced by a certain part of a system that operates to perform aphysical change to the material.

In the example illustrated in FIG. 6, the summary information 600 alsoincludes a column 630 indicating a material type associated with a BATCHID (e.g., as illustrated in the same row). The summary information 600also includes columns 635, 640 and 645 of metrics that are associatedwith a BATCH ID. The metrics associated with a BATCH ID may be a qualityindicator for a property that is important in the process (and thus a“metric” may be referred to herein as a “quality indicator”). The metricmay indicate value or a property that is important in a process thebatch is undergoing, for example, at the end of the process. In someexamples, the metric may indicate a moisture content, pH, temperature,concentration of a substance, or any other sensed and/or determinedproperty of the batch.

The example illustrated in FIG. 6 shows metrics for several sensors,e.g., a column 635 of sensor 1 data, a column 640 of sensor 2 data, anda column 645 of sensor n data. In this case, the metric may represent aproperty determined by sensor 1, sensor 2, and sensor n and thus mayindicate to a user certain BATCH ID's and certain properties that may bedesired for further evaluation by viewing time series data collected bycertain sensors for those certain BATCH ID's, to provide insight intohow the metric was arrived at for one or more particular BATCH ID's. Forexample, the metric (or quality indicator) may represent a “snapshot” ofthe time series data. In some examples, the quality indicator may be asensor value for the batch when it has completed a particular part ofthe process, or the whole process. In some embodiments, the metric maybe a particular point in a batch (for example, at the end of theprocessing of a batch, or at a predetermined point in a process) havinga data value that may represents time series data collected by sensor,or a determined value derived from one or more sensors. Although themetric may be a single value as illustrated in FIG. 6, the qualityindicator may correspond with time series data of the BATCH ID. Forexample, the metric 5.900 in column 635 associated with BATCH ID 450112may correspond with time series data collected by a sensor 1 during aprocess (e.g., metric 5.900 may be a final value for a monitoredproperty). Similarly, the metric 13.6 in column 640 and the metric 51.2in column 645 are also associated with BATCH ID 450112 and maycorrespond with time series data collected by a sensor 2 and a sensor nduring a process. Such metrics may be used to determine which timeseries data should be reviewed to provide insight into how the metricwas generated.

The initial data set of batches may be very large such that visualanalysis of all the batches by a user is unwieldy if not impossible.Accordingly, a user may filter the initial data set to determineselected batches to analyze. In some embodiment, the data may befiltered based on one or more of the metrics (quality indicators). Forexample, as a way to determine which of the batch information should befurther analyzed, a board 660 in the board user interface may graph atleast a portion of the summary information 600. Graphing the summaryinformation may allow a user to visually perceive outlier qualityindicators thus indicating one or more batch data sets that the user maywant to investigate, for example, by viewing time series sensor dataassociated with the outliers. In this example, a histogram was generatedby filtering the batches in the initial data, set such that batcheshaving a Sensor 2 metric of 12.5 or greater is depicted in thehistogram, which is illustrated in the board user interface 660. In thiscase the histogram includes six batches. Viewing this data, the user maydecide to further investigate certain time series data for only some ofthese batches, for example, the batches having a Sensor 2 metric of 13.0or greater. As illustrated in FIG. 7, the initial data set can then befiltered to create a filtered data set having these batches.

FIG. 7 illustrates an example of information relating to a filtered dataset 700 for three batches (e.g., the three batches illustrated in theboard user interface 660), this filtered data set 700 being the resultof filtering the initial data set of the plurality of batches inaccordance with at least one criteria, for example at least onefiltering parameter provided by a user. In this example, the batcheshave been filtered such that a filtered data set includes batch number1, batch number 4, and batch number 8, as depicted in the summaryinformation 600.

The filtered data set 700 may be produced using a variety of filteringtechniques. For example, in viewing the summary information 600 a usermay see that sensor 2 data quality indicator shown in column 640includes several higher values, for example, for batch 1, batch 4, andbatch 8. In one example of filtering, to produce the filtered data setillustrated in FIG. 7, a user may select certain batches for thefiltered data set (e.g., batches having a sensor 2 quality indicator of13.0 or higher).

Accordingly, a user can filter an initial data set using information(e.g., metrics/quality indicators) related to certain time series dataof the various batches to determine certain time series data for furtherevaluation. In this way, a user can look for batches that have certainhigh or low quality metric indicators, or other information indicativeof a quality level or is otherwise interesting. For example, the summaryinformation 600 may be filtered by specifying one or more filteringcriteria to produce a filtered data set from time series data thatincludes batches with the highest sensor 2 data (for example, asillustrated in column 640 as being 13.0 or higher) by querying thedatabase to determine which batches include information that meet thefiltering criteria. In another example, filtering of initial data setmay be performed by performing correlation analysis on data associatedwith each of the batches and stored in the database. In this way,outliers of quality indicators indicating exceptional batch data (forexample, high-quality or low-quality batches) can be identified andappear in the filtered data set. In another example, quality metricsthat are associated with each batch can be used as filtering criteria toproduce the filtered data set 700. For example, a quality evaluation ofthe batch that occurs at the end of the batch, or that one or morestages during the batch, and is stored in the database, can be used tofilter the initial data set to determine a filtered data set.

While FIGS. 6 and 7 illustrate example boards of a board user interface,the board user interface may enable a user to dynamically generatedifferent boards to analyze batches. For example, using the board userinterface, an analyst can import any initial data set. Variousoperations the user can perform using the board user interface includeimporting additional data to analyze, viewing the data in a tabularformat, viewing the data in a graphical format (such as in a graph,scatterplot, bar chart, or other visual format), merging data (e.g.,joining two data sets), filtering data sets, and so forth. Accordingly,an analyst can perform any number of operations to further analyze andfilter the data to identify potential batches that may be viewed in atime series user interface described herein.

FIG. 8 illustrates an example of information that may be presented on auser interface 800 to quickly and efficiently generate another userinterface, for example, user interface 900 illustrated in FIG. 9.Accordingly, FIG. 9 illustrates an example of the user interface 900that is generated to display time series data from the filtered data setas a result of the selections made in the user interface depicted inFIG. 8. User interface 900 includes a chart having plots of time seriesdata of one or more sensors for multiple batches that are in thefiltered data set 700.

After the filtered data set 700 is determined, a user interface 800 canbe generated and displayed for a user to select items to be graphicallydepicted in plots for analysis. In this example, the user interface 800includes an identifier selection field 805 with a pulldown menu 810 thatis used to identify a portion of the filtered data set for analysis. Inthe example illustrated in FIG. 8, the pulldown menu 810 is illustratedas selecting batch identifier from several other options. The selectionidentifier field 805 indicates items to be presented in a subsequentuser interface for example, the user interface 900 illustrated in FIG.9. In this example, user interface 900 includes a control panel 905depicted in this example on the left side of user interface 900. Userinterface 900 also includes graphs 915A-C depicted on the right-handside of the user interface 900. In this example, graphs 915A-C arepresented such that each of their x-axis are parallel and depict time,and graphs 915A-C are aligned vertically such that the time series datashown in the graphs 915A-C can be aligned and compared. The controlpanel 905 may include individual control buttons 910A-C corresponding toeach of the on graphs 915A-C to control the presentation of time seriesdata on graphs 915A-C. As the batch identifier was selected in theidentifier selection field 805, the three batches in the filtered dataset 800 are correspondingly displayed in the control buttons 910A-C ofthe control panel 905. Various graphical controls may be used to bestdisplay the time series data, based on preferences of a user and basedon the data being displayed.

The user interface 800 also includes a process selection field 815 witha pulldown menu 820 that is used to select a particular processingsystem or material of the batch for analysis. In this example,processing system 2 is selected. This example user interface 800 isconfigured to operate in conjunction with a previously generatedfiltered data set 700, and the time series data of the batches in thefiltered data set that is stored in the database in accordance with anontology. The user interface 800 is configured such that the identifierselection 805 and pulldown menu 810, and the process selection 815 andpulldown menu 820, indicates time series data that will be automaticallyretrieved and presented in a user interface, such as the user interface900 in FIG. 9. In this way receiving a user selection can execute aprocess, referred to as a time series connector, for at least a firstbatch identifier and a second batch identifier and the selected batchprocess, where the time series connector is configured to generate timeseries configuration data related to the batch process selected. Oncethe batch process selection 820 has been made, a user can select agenerate plot button 830 to cause the one or more processors to executethe time series connector. Executing a time series connector cancomprise transmitting a request to a time series application, therequest comprising the first batch identifier, the second batchidentifier, any time series configuration data needed to generate theuser interface depicting the selected batch identifiers and at least aportion of the time series data for the selected batch process. In thisexample, because the Processing aSystem 2 was selected in the processselection field 815, time series data that was collected and processingsystem to for the three batches indicated in the filtered data set 700is plotted and displayed as illustrated in user interface 900 of FIG. 9.The user interface 800 also includes a clear selection button 825, whichcan be used to clear previously made entries to the user interface 800such that new selections can be made.

The time series connector can generate the time series configurationdata. For example, based on the user input received by the time seriesconnector, the system can generate configuration data used by a timeseries user interface, such as the user interface 900 in FIG. 9. Theconfiguration data can be in a Uniform Resource Indicator format (suchas a Uniform Resource Locator), another data format such as XML orJavaScript Object Notation (JSON), and/or some combination thereof. Insome embodiments, the configuration data can be stored in data storage,and the time series connector can transmit a message to a time seriesuser interface to retrieve the configuration data from the data storage.The configuration data can be stored by an identifier, and thetransmitted message to the time series user interface can include theidentifier. Transmission of configuration data in this manner mayefficiently transmit configuration data where the transmission messagesmay have data limits, such as in a web context where the time seriesuser interface can be initiated or executed via a URI.

The time series configuration data can include parameters for theconfiguration of a time series user interface, such as the userinterface 900 in FIG. 9. The time series configuration data can defineeach chart in a time series user interface and/or plot in a chart of thetimer series user interface. For example, the time series configurationdata can include a type, such as an ontology type, which indicates tothe time series user interface to reference the data model to retrieveand present time series data according to the data model. The timeseries configuration data can include an indication for the time seriesuser interface to use the start and stop time for a particular batchobject (instead of having to include the actual start and stop time).For example, by including a batch identifier in the time seriesconfiguration data, the time series user interface can retrieve thebatch object for the batch identifier that can include the particularstart and stop time for the batch. Accordingly, the time seriesconnector can control the configuration of a time series user interface(e.g., number of charts, number of plots per chart, and/or other timerseries user interface configuration) via the via the provided timeseries configuration data.

Referring to FIG. 9, graph 915A illustrates time series sensor datagenerated in Processing System 2 by sensor 1 plotted for each of batchidentifier 450112, 350325, and 250435. Graph 915B illustratescorresponding time series sensor data generated in Processing System 2by sensor 2 that is plotted for each of batch identifier 450112, 350325,and 250435. And Graph 915C illustrates corresponding time series sensordata generated in Processing System 2 by sensor 3 that is plotted foreach of batch identifier 450112, 350325, and 250435. The control panel905 and individual controls 910 can allow time series sensor data forthe indicated batches to be displayed in a variety of ways. In oneexample of a control panel 905, selection of a batch identifier from theindividual control buttons 910 highlights time series data for theselected batch identifier making it easier to view. In another exampleof a control panel 905, a time range may be indicated which is thencorrespondingly plotted in graph 915. In one example, the time scale ofthe time series data in graphs 915 for each batch is the same. Inanother example, a user can specify different time scales to present thetime series data, which may help to analyze the data.

The configuration user interface 800 uses known associations of groupsof time series data, for example sensor data, with certain processingsystems or certain material, to allow a user to quickly indicate timeseries data related to a process for display without having to know eachsensor associated with the process and without having to manuallyindicate the data for each sensor to be displayed. The graphical userinterface 800 is one example of a user interface that can be designed toimplement associations of time series data that has been processed andstored as data objects with corresponding links and properties inaccordance with an ontology, as described in reference to FIGS. 2through 4.

A stated above, the graphical user interface 800 is an example of a userinterface that is configured to take advantage of the underlying storageof data in accordance with an ontology, other graphical user interfaceswith different pulldown menus that operate similarly are alsocontemplated. Using data objects that are stored on a computer storagemedium, different time series user interfaces may be generated, each ofthe time series user interfaces including a chart illustrating plots ofdifferent portions of the time series data, for example, portions oftime series data relating to one or more of various sensors, variousbatches, various events, various determined information, and/or variousquality data. For example, other user interfaces can be configured suchthat the selection of a process (e.g., an event or a processing system),a material or particular type of sensor is used to generate a chart in auser interface that includes time series data associated with theselected process, material or sensor for multiple batches. Such userinterfaces can facilitate easier analysis of large time series data setsbecause a user does not have to spend as much time indicating exactlywhat time series data needs to be presented in each plot. Instead,associations that have been generated when the time series data wasprocessed in accordance with the ontology can be leveraged to displayassociated data of a process for multiple batches.

In various embodiments certain functionality may be accessible by a userthrough a web-based viewer (such as a web browser), or other suitablesoftware program). In such implementations, the user interface may begenerated by a server computing system and transmitted to a web browserof the user (e.g., running on the user's computing system).Alternatively, data (e.g., user interface data) necessary for generatingthe user interface may be provided by the server computing system to thebrowser, where the user interface may be generated (e.g., the userinterface data may be executed by a browser accessing a web service andmay be configured to render the user interfaces based on the userinterface data). The user may then interact with the user interfacethrough the web-browser. User interfaces of certain implementations maybe accessible through one or more dedicated software applications. Incertain embodiments, one or more of the computing devices and/or systemsof the disclosure may include mobile computing devices, and userinterfaces may be accessible through such mobile computing devices (forexample, smartphones and/or tablets).

FIG. 10 is an example of a flowchart illustrating an embodiment of aprocess 1000 for presenting time series data in a user interface. Theone or more processors 504 of the computer system 500 illustrated inFIG. 5 may perform the process 1000.

At block 1005, process 1000 causes presentation of a first visualizationfor an initial data set, the first visualization comprising summaryinformation of a plurality of batches. The initial data set may includetime series data associated with several, dozens, or even hundreds ormore batches. The summary information may include various data andsummaries of data for the plurality of batches, for example as indicatedin the summary information 600 illustrated in FIG. 6. At block 1010,process 1000 receives user input including a first filter parameter. Thefirst filter parameter may relate to data in the summary of information,for example, sensor information or data quality information. The firstfilter parameter may be received via input device 514 of the computersystem 500.

At block 1015, process 1000 applies the first filter parameter to theinitial data set, where applying the first filter parameter includesgenerating a filtered data set from the initial data set. The filtereddata set is a subset of the initial data set. A purpose of filtering theinitial data set to produce the first filtered data set is to reduce thenumber of selected batches for displaying graphically on a userinterface. The filtered data set may include several batches foranalysis. At block 1020, the process 1000 causes presentation of atleast some entries of the filtered data set that may include, forexample, a first batch identifier associated with a first batch and thesecond batch identifier associated with a second batch. FIG. 7illustrates one example of a filtered data set 700.

At block 1030, the process 1000 receives a user selection to execute atime series connector. The time series connector is information thatassociates objects stored in a database, in accordance with theontology. The purpose of the time series connector is to allow a user toselect for display (e.g., using the user interface 800 illustrated inFIG. 8) time series sensor data stored in the database for particularbatches and a particular process by merely identifying the particularbatches and process. In one example, for each batch selected, the timeseries connector associates a start time and/or an end time for eachbatch, thus obviating the need for a user to manually determine thestart time and/or end time for each selected batch. In another example,the time series connector associates a selected process with time seriesdata stored in the database of one or more sensors that collect the datafor the process, again, obviating the need for a user to manuallydetermine the sensors that are associated with the selected process.Accordingly, implementation of the time series connector allows a userto select particular batch identifiers (e.g., by generating a filtereddata set) and a particular process (e.g., using the process selection815 pulldown menu 820 illustrated in FIG. 8) and time series datarelated to the batches and the process will be displayed, without theuser having to manually determine and designate for display thestart/end time for each batch, the corresponding start/end time for theselected process, and start/end time for the corresponding time seriessensor data collected during the process.

The time series connectors may be configured based on information thathas been stored in the database in accordance with an ontology. Forexample, as time series sensor data for a process is stored in adatabase in accordance with an ontology (for example, as discussed inreference to FIGS. 2-4, the process data object may be linked to thedata object for the time series data for each sensor that monitors theprocess. Similarly, for a batch that is stored in the database inaccordance with the ontology, the batch data object may be linked to adata object for each process in the batch. Accordingly, using this knownassociation information, the time series connector may be configuredsuch that when a certain process is selected (e.g., using the processselection 815 pulldown menu 820) and the system is directed to generateplots (e.g., using the generate plots 830 button) a particular timeseries connector is executed that is configured with information toaccess the time series sensor data relevant to the selected processbetween the start/end times related to the selected batches.

Accordingly, at block 1030, when the user selection is received by theprocess 1000, the process 1000 executes a time series connector for atleast the first batch identifier, the second batch identifier and abatch process, where executing the time series connector comprisestransmitting a request to a time series application, the requestcomprising the first batch identifier, the second batch identifier, andthe time series configuration data. The process 1000 may receive theuser selection via input device 514.

An example of receiving a user selection to execute a time seriesconnector for at least the first batch identifier, the second batchidentifier, and the batch process, illustrated in the user interface 800illustrated in FIG. 8. In this example, a user selection is received and“Processing System 2” 820 is the batch process. The time seriesconnector associates the batch identifiers of the filtered data set andthe batch process “Processing System 2” with object information storedin the database, the object information comprising the start time forthe batch process, the end time for the batch process, and time seriessensor data for sensors that collected data for the batch process“Processing System 2.” When the time series connector is executed, arequest is transmitted to a time series application running on the oneor more processors, the request including at least the first batch andthe second batch identifier, and time series configuration data. Thetime series configuration data is information based on the time seriesconnector that indicates time series data related to the first batchidentifier and time series data related to the second batch identifierfor presenting on a chart in a user interface.

At block 1035, the process 1000 causing presentation of a time seriesuser interface based at least on the request, the time series userinterface comprising a chart. The chart illustrate a first plot forfirst time series data of the first batch identifier and a second plotfor second time series data of the second batch identifier, for example,as illustrated in graph 915A in FIG. 9. The chart is further configuredaccording to the time series configuration data, and the first plot isaligned (e.g., temporally aligned) and comparable to the second plot.The time series configuration data refers to data that is automaticallygenerated based on the user input to select a batch process for two ormore batch identifiers. As in example, the time series configurationdata may include information relating to producing the chart, forexample, the range of the time scale on the x-axis of a graph in thechart showing time series data. In another example, the time seriesconfiguration data may include information indicting preferences forpresenting the time series data in the chart, for example, previouslydetermined preferences for a user.

Many variations and modifications may be made to the above-describedembodiments, the elements of which are to be understood as being amongother acceptable examples. All such modifications and variations areintended to be included herein within the scope of this disclosure. Theforegoing description details certain embodiments. It will beappreciated, however, that no matter how detailed the foregoing appearsin text, the systems and methods can be practiced in many ways. As isalso stated above, it should be noted that the use of particularterminology when describing certain features or aspects of the systemsand methods should not be taken to imply that the terminology is beingre-defined herein to be restricted to including any specificcharacteristics of the features or aspects of the systems and methodswith which that terminology is associated.

Conditional language, such as, among others, “can,” “could,” “might,” or“may,” unless specifically stated otherwise, or otherwise understoodwithin the context as used, is generally intended to convey that certainembodiments include, while other embodiments do not include, certainfeatures, elements, and/or steps. Thus, such conditional language is notgenerally intended to imply that features, elements and/or steps are inany way required for one or more embodiments or that one or moreembodiments necessarily include logic for deciding, with or without userinput or prompting, whether these features, elements and/or steps areincluded or are to be performed in any particular embodiment.

The term “substantially” when used in conjunction with the term“real-time” forms a phrase that will be readily understood by a personof ordinary skill in the art. For example, it is readily understood thatsuch language will include speeds in which no or little delay or waitingis discernible, or where such delay is sufficiently short so as not tobe disruptive, irritating, or otherwise vexing to a user.

Conjunctive language such as the phrase “at least one of X, Y, and Z,”or “at least one of X, Y, or Z,” unless specifically stated otherwise,is to be understood with the context as used in general to convey thatan item, term, etc. may be either X, Y, or Z, or a combination thereof.For example, the term “or” is used in its inclusive sense (and not inits exclusive sense) so that when used, for example, to connect a listof elements, the term “or” means one, some, or all of the elements inthe list. Thus, such conjunctive language is not generally intended toimply that certain embodiments require at least one of X, at least oneof Y, and at least one of Z to each be present.

The term “a” as used herein should be given an inclusive rather thanexclusive interpretation. For example, unless specifically noted, theterm “a” should not be understood to mean “exactly one” or “one and onlyone”; instead, the term “a” means “one or more” or “at least one,”whether used in the claims or elsewhere in the specification andregardless of uses of quantifiers such as “at least one,” “one or more,”or “a plurality” elsewhere in the claims or specification.

The term “comprising” as used herein should be given an inclusive ratherthan exclusive interpretation. For example, a general purpose computercomprising one or more processors should not be interpreted as excludingother computer components, and may possibly include such components asmemory, input/output devices, and/or network interfaces, among others.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it may beunderstood that various omissions, substitutions, and changes in theform and details of the devices or processes illustrated may be madewithout departing from the spirit of the disclosure. As may berecognized, certain embodiments of the inventions described herein maybe embodied within a form that does not provide all of the features andbenefits set forth herein, as some features may be used or practicedseparately from others. The scope of certain inventions disclosed hereinis indicated by the appended claims rather than by the foregoingdescription. All changes which come within the meaning and range ofequivalency of the claims are to be embraced within their scope.

What is claimed is:
 1. A method for presenting time series, the methodcomprising: storing data associated with a plurality of batches in astorage component and organized by an ontology, each batch relating to adifferent occurrence of a same type of event or process that ismonitored by a system with a plurality of sensors over a time period;causing presentation of a first visualization for an initial data set,the first visualization comprising summary information of the pluralityof batches; applying a first filter parameter to the initial data set,wherein applying the first filter parameter comprises generating afiltered data set from the initial data set; causing presentation of atleast some entries of the filtered data set comprising a first batchidentifier associated with a first batch and the second batch identifierassociated with a second batch; receiving a user selection to execute atime series connector for at least the first batch identifier and thesecond batch identifier and a batch process, wherein the time seriesconnector is configured to associate objects stored in accordance withthe ontology and generate time series configuration data for storedbatch data associated with the first batch identifier and the secondbatch identifier; executing the time series connector, wherein executingthe time series connector further comprises: transmitting a request to atime series application, the request comprising the first batchidentifier, the second batch identifier, and the time seriesconfiguration data; and causing presentation, in the time seriesapplication, of a time series user interface based at least on therequest, the time series user interface comprising a chart, the chartcomprising a first plot for first time series data for the first batchidentifier and a second plot for second time series data for the secondbatch identifier, wherein the chart is further configured according tothe time series configuration data, and wherein the first plot isaligned and comparable to the second plot, wherein the method isperformed by one or more computer hardware processors configured toexecute computer-executable instructions on a second non-transitorycomputer storage medium.
 2. The method of claim 1, wherein the timeseries connector associates the batch process with object informationstored in a database, the object information comprising the start timefor the batch process, the end time for the batch process, and timeseries sensor data for at least one sensor that collected data for thebatch process.
 3. The method of claim 1, wherein the first time seriesdata of the first plot is related to a first physical characteristicsensed from the first batch, and the second time series data of thesecond plot is related to the first physical characteristic sensed fromthe second batch.
 4. The method of claim 3, wherein the chart furthercomprises a third plot for the first time series data for the firstbatch identifier, and a fourth plot for the second time series data forthe second batch identifier, and wherein the first time series data ofthe third plot is related to a second physical characteristic sensedfrom the first batch, and the second time series data of the fourth plotis related to the second physical characteristic sensed from the secondbatch.
 5. The method of claim 3, where the first plot and the secondplot for the first physical characteristic are depicted in a first graphdefined by an first x-axis and y-axis, and the third plot and the fourthplot for the second physical characteristic are depicted in a secondgraph defined by a second x-axis and y-axis, wherein the y-axis of thefirst graph and the second graph are illustrated to be in parallel inthe chart.
 6. The method of claim 1, wherein the summary informationincludes first information for each of the plurality of batches in thefirst visualization, and wherein applying the first filter parametercomprises generating the filtered data set from the initial data basedon selecting batches of the plurality of batches having firstinformation that meets the criteria of the first filter parameter. 7.The method of claim 1, wherein the user input comprises a second filterparameter, and wherein generating a filtered data set includes applyingthe second filter parameter to the filtered data set generated byapplying the first filter parameter to generate a filtered data setfiltered by the first and second filter parameter.
 8. The method ofclaim 1, further comprising receiving a user input comprising agraphical parameter, applying the graphical parameter to the initialdata set to generate a graphical summary representing at least some ofthe summary information for at least some of the plurality of batches,causing presentation of the graphical summary for analysis by the user.9. The method of claim 8, wherein the graphical summary comprises ahistogram.
 10. The method of claim 8, wherein the graphical summarycomprises a plot representing a correlation of at least some of thesummary information for at least some of the plurality of batches. 11.The method of claim 1, wherein time series configuration data includespreconfigured information such that the presentation of a time seriesuser interface based on the request causes the chart to includepreconfigured time series data from multiple sensors for each batchrepresented in the chart.
 12. A system for presenting time series,comprising: a first non-transitory computer storage medium configured tostore time series data and summary information for a plurality ofbatches, and organized by an ontology, each batch relating to adifferent occurrence of a same type of event or process that ismonitored by a system with a plurality of sensors over a period of time;a second non-transitory computer storage medium configured to at leaststore computer-executable instructions; and one or more computerhardware processors in communication with the second non-transitorycomputer storage medium, the one or more computer hardware processorsconfigured to execute the computer-executable instructions to at least:cause presentation of a first visualization for an initial data set, thefirst visualization comprising summary information of a plurality ofbatches; apply a filter parameter to the initial data set, whereinapplying the first filter parameter comprises generating a filtered dataset from the initial data set; cause presentation of at least someentries of the filtered data set comprising a first batch identifierassociated with a first batch and the second batch identifier associatedwith a second batch; receive a user selection to execute a time seriesconnector for at least the first batch identifier and the second batchidentifier and a batch process, wherein the time series connector isconfigured to associate objects stored in accordance with the ontologyand to generate time series configuration data for stored batch dataassociated with the first batch identifier and the second batchidentifier; execute the time series connector, wherein executing thetime series connector further comprises: transmitting a request to atime series application, the request comprising the first batchidentifier, the second batch identifier, and the time seriesconfiguration data; and cause presentation, in the time seriesapplication, of a time series user interface based at least on therequest, the time series user interface comprising a chart, the chartcomprising a first plot for first time series data for the first batchidentifier and a second plot for second time series data for the secondbatch identifier, wherein the chart is further configured according tothe time series configuration data, and wherein the first plot isaligned and comparable to the second plot.
 13. The system of claim 12,wherein the first time series data of the first plot is related to afirst physical characteristic sensed from the first batch, and thesecond time series data of the second plot is related to the firstphysical characteristic sensed from the second batch.
 14. The system ofclaim 12, wherein the chart further comprises a third plot for the firsttime series data for the first batch identifier, and a fourth plot forthe second time series data for the second batch identifier, and whereinthe first time series data of the third plot is related to a secondphysical characteristic sensed from the first batch, and the second timeseries data of the fourth plot is related to the second physicalcharacteristic sensed from the second batch.
 15. The system of claim 12,where the first plot and the second plot for the first physicalcharacteristic are depicted in a first graph defined by an first x-axisand a y-axis, and the third plot and the fourth plot for the secondphysical characteristic are depicted in a second graph defined by asecond x-axis and y-axis, wherein the y-axes of the first graph and thesecond graph are illustrated to be in parallel in the chart.
 16. Thesystem of claim 12, wherein the user input comprises a second filterparameter, and wherein generating a filtered data set includes applyingthe second filter parameter to the filtered data set to generate afiltered data set filtered by the first and second filter parameter. 17.The system of claim 12, wherein the one or more computer hardwareprocessors are further configured to execute the computer-executableinstructions to receive a user input comprising a graphical parameter,apply the graphical parameter to the initial data set to generate agraphical summary representing at least some of the summary informationfor at least some of the plurality of batches, and cause presentation ofthe graphical summary.
 18. The system of claim 17, wherein the graphicalsummary comprises a plot representing a correlation of at least some ofthe summary information for at least some of the plurality of batches.19. The system of claim 12, wherein the time series connector comprisesan association of a process that is related to a batch to time seriessensor data for two or more sensors.